lpcXpresso 3.6.2

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

lpcXpresso 3.6.2

914 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by maxmel on Mon Feb 21 09:01:52 MST 2011
i update 3.6 to 3.6.2 and on a projetc i have this error

[COLOR=black][FONT=Courier New]c:/nxp/lpcxpresso_3.6.2/lpcxpresso_3.6/tools/bin/../lib/gcc/arm-none-eabi/4.3.3/../../../../arm-none-eabi/bin/ld.exe: Linker CRP Enabled, but no CRP_WORD provided within application[/FONT][/COLOR]
[COLOR=black][FONT=Courier New][/FONT][/COLOR]
[COLOR=black][FONT=Courier New]how to solve it?[/FONT][/COLOR]
[COLOR=black][FONT=Courier New][/FONT][/COLOR]
[COLOR=black][FONT=Courier New]Thank you[/FONT][/COLOR]
[COLOR=black][FONT=Courier New][/FONT][/COLOR]
[COLOR=black][FONT=Courier New]Regards[/FONT][/COLOR]
0 Kudos
Reply
17 Replies

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Rob65 on Tue Aug 30 11:13:29 MST 2011

Quote: tnrajvignesh
The link to download LPCXpresso is broken.



I'm not sure which like you are using but http://ics.nxp.com/support/lpcxpresso/ directs you to the proper download page at Code Red.

Regards,
[INDENT]Rob
[/INDENT]
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by tnrajvignesh on Tue Aug 30 01:20:33 MST 2011
The link to download LPCXpresso is broken. I need the software very badly. Can anybody please help me with a link.
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Ex-Zero on Wed Aug 24 19:17:46 MST 2011

Quote: Izzy Weird
Is there any way to move CMSIS down and get the project folder to the top? :confused:



Create (or rename) more A-projects :) Procects are arranged alphabetically in Project Explorer :eek:
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Izzy Weird on Wed Aug 24 19:03:42 MST 2011

Quote: Zero
Are you sure you right clicked project properties?

See: http://support.code-red-tech.com/CodeRedWiki/PerFileProperties



Aha! CMSIS was at the top, the folder with the project name was below that.  Found the Linker, and disabled the item.  Thanks.  :cool:

Is there any way to move CMSIS down and get the project folder to the top? :confused:
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Ex-Zero on Wed Aug 24 18:35:13 MST 2011
Are you sure you right clicked project properties?

See: http://support.code-red-tech.com/CodeRedWiki/PerFileProperties
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Izzy Weird on Wed Aug 24 18:08:30 MST 2011

Quote: CodeRedSupport
There is no need to do any of the other things suggested by other posters. The quick way to stop the linker from trying to insert CRP is to :
- right-click on the project
- select Properties
- open the page C/C++Build, Settings
- Under MCU Linker, select Target
- uncheck "Enable Code Read Protect"

Thats it.



Thanks, that looks like solid advice, and that is where I would expect to find it.  But what if there is no [U]"MCU Linker[/U]" under C/C++ Build - Settings.  I see MCU C Compiler, MCU Assembler, and MCU Archiver, but no MCU Linker.

What Gives?:confused:
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by CodeRedSupport on Sun Apr 24 04:59:50 MST 2011

Quote: Rob65
There is a big gap of empty space from 0x138 - 0x2fc. Ununsed memory...
If you are going to use CRP in your project, start with a CRP enabled project from the start - this will prevent that in the end you discover you are just short of a few bytes of Flash ...

You could of course change the .ld file and use this memory to store some read only data.


You might also want to read the docs for alternative strategies here....

Reducing Code Size when CRP enabled
http://support.code-red-tech.com/CodeRedWiki/CodeSizeCRP

There are also a number of other FAQs that are related to CRP ...
http://support.code-red-tech.com/CodeRedWiki/CodeReadProtect
http://support.code-red-tech.com/CodeRedWiki/EnhancedManagedLinkScripts
http://support.code-red-tech.com/CodeRedWiki/CRP_SectionMacros

Regards,
CodeRedSupport
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Rob65 on Sun Apr 24 04:34:39 MST 2011

Quote: larryvc
By > 12 hours.:p



What's 12 hours on the existince of internet

One remark on CRP: This will cost you 456 bytes of expensive Flash.
Have a look at part of my .map file:

 .isr_vector    0x00000000      0x124 ./src/cr_startup_lpc13.o
                0x00000000                g_pfnVectors
                0x00000124                . = ALIGN (0x4)
                0x00000124                __section_table_start = .
                0x00000124                __data_section_table = .
                0x00000124        0x4 LONG 0x40a4 LOADADDR (.data)
                0x00000128        0x4 LONG 0x10000000 ADDR (.data)
                0x0000012c        0x4 LONG 0x224 SIZEOF (.data)
                0x00000130                __data_section_table_end = .
                0x00000130                __bss_section_table = .
                0x00000130        0x4 LONG 0x10000228 ADDR (.bss)
                0x00000134        0x4 LONG 0x15cc SIZEOF (.bss)
                0x00000138                __bss_section_table_end = .
                0x00000138                __section_table_end = .
 *(.after_vectors*)
                0x000002fc                . = 0x2fc
 *fill*         0x00000138      0x1c4 ff
                0x000002fc                PROVIDE (__CRP_WORD_START__, .)
 *(.crp)
 .crp           0x000002fc        0x4 ./src/main.o
                0x000002fc                CRP_WORD
                0x00000300                PROVIDE (__CRP_WORD_END__, .)
                0x00000001                ASSERT (! ((__CRP_WORD_START__ == __CRP_WORD_END__)), Linker CRP Enabled, but no CRP_WORD provided within application)
 *(.text*)
 .text.ANT_ResetSystem
                0x00000300       0x3c ./src/ant.o
                0x00000300                ANT_ResetSystem
There is a big gap of empty space from 0x138 - 0x2fc. Ununsed memory...
If you are going to use CRP in your project, start with a CRP enabled project from the start - this will prevent that in the end you discover you are just short of a few bytes of Flash ...

You could of course change the .ld file and use this memory to store some read only data.

Rob
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by larryvc on Sun Apr 24 00:34:07 MST 2011

Quote: Rob65
Hm,

Larry just beat me to it ...
Rob



By > 12 hours.:p

Otherwise this is a great explanation of why CRP exists.


Quote: Rob65

If you set CRP_WORD to CRP_3 then there is [COLOR=red][B]no way to reprogram your device[/B][/COLOR] [COLOR=red][B]anymore!!![/B][/COLOR]



Good for those special moments of wanting a development system upgrade and having a good reason to explain it to my wife.:D

Larry
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Rob65 on Sat Apr 23 23:05:24 MST 2011
Hm,

Larry just beat me to it ...
In fact, CodeRedSupport is right by stating

Quote:
There is no need to do any of the [COLOR=Red]other [/COLOR]things suggested by other posters.

Indeed, disabling CRP is the quickest way to do this.

Maybe it is good to explain a little bit more about Code Read Protect.
This is a (boot) option in the LPC series processors to prevent others from reading your device. At reset, first the internal ROM is being executed. There the ISP pin is checked to see if ISP via the UART port is used and the SWD (software debug) is being enabled after which the processor starts executing your code in Flash.

CRP is a way to prevent others from reading your device (and copying your code).
If you enable code read protect in a project, the LPCXpresso tools will create the CRP_WORD variable in the main program when you create a new project with startup code.
By default it is set to CRP_NO_CRP - so no harm done, it's OK to leave it like this (it will only cost you 4 bytes of Flash).

The Application Note AN10968 " Using Code Read Protection in LPC1100 and LPC1300" found in the design support section on %7Cpp=[t=pip,i=LPC1343FBD48]"]the NXP site.

If you start using CRP, please remember that you must have ISP available in your application. As soon as you progam any of the CRP_1 to CRP_3 levels you cannot access your device through your debugger (e.g. LPC-Link or RedProbe).
If you set CRP_WORD to CRP_3 then there is [COLOR=Red][B]no way to reprogram your device[/B][/COLOR] [COLOR=Red][B]anymore!!![/B][/COLOR]
This is the most ultimate way of protecting your device when used in stuff like consumer electronics where you will never have (programming) access anymore.

For hobby projects I would not care about CRP but for a commercial project/product I strongly suggest to enable (and use) CRP. Setting it to CRP_2 is the most meaningfull way I think - this does allow you to use ISP to erase the complete flash and reprogram sectors but it is not possible to use software debugging or read the code via ISP.

As an example: in my product using an lpc1343 I have access to PIO0_1 via a via pad on the PCB. All I have to do is to remove power from the board, pull PIO0_1 low and plug in the USB cable. This is how I program new devices during production or upgrade devices that are returned for a software update.

Rob
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by larryvc on Sat Apr 23 10:37:28 MST 2011

Quote: CodeRedSupport
There is no need to do any of the other things suggested by other posters



Except Rob's.


Quote: Rob65

But if you don't want to change to code (I've got some code I do not want to change 'cause it's not mine) you can also disable CRP.
In the project properties, check the "MCU Linker" - Target page (under "C/C++ Build / Settings") there you will find a checkbox to control CRP.

Rob

0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by CodeRedSupport on Sat Apr 23 06:58:05 MST 2011

Quote: maxmel
i update 3.6 to 3.6.2 and on a projetc i have this error

[COLOR=black][FONT=Courier New]c:/nxp/lpcxpresso_3.6.2/lpcxpresso_3.6/tools/bin/../lib/gcc/arm-none-eabi/4.3.3/../../../../arm-none-eabi/bin/ld.exe: Linker CRP Enabled, but no CRP_WORD provided within application[/FONT][/COLOR]

[COLOR=black][FONT=Courier New]how to solve it?[/FONT][/COLOR]

[COLOR=black][FONT=Courier New][/FONT][/COLOR]



There is no need to do any of the other things suggested by other posters. The quick way to stop the linker from trying to insert CRP is to :
- right-click on the project
- select Properties
- open the page C/C++Build, Settings
- Under MCU Linker, select Target
- uncheck "Enable Code Read Protect"

Thats it.
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Rob65 on Fri Apr 22 23:00:01 MST 2011
As Zero anf TheFallGuy suggested; both the include and the source line will do the trick.

But if you don't want to change to code (I've got some code I do not want to change 'cause it's not mine) you can also disable CRP.
In the project properties, check the "MCU Linker" - Target page (under "C/C++ Build / Settings") there you will find a checkbox to control CRP.

Rob
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Ex-Zero on Mon Feb 21 09:31:29 MST 2011
If you use Project Wizard to create a new CMSIS project you can see what has changed :)
[SIZE=2][COLOR=#2a00ff]
[/COLOR][/SIZE]
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by TheFallGuy on Mon Feb 21 09:27:42 MST 2011
Have you tried:
#include <NXP/crp.h>
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by maxmel on Mon Feb 21 09:19:31 MST 2011
i have no crp.h in my project
so now i have [SIZE=2]
../src/src/main.c:28: error: '__CRP' undeclared (first use in this function)
[/SIZE]
0 Kudos
Reply

879 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Ex-Zero on Mon Feb 21 09:08:36 MST 2011
Try to insert:

// Variable to store CRP value in. Will be placed automatically
// by the linker when "Enable Code Read Protect" selected.
// See crp.h header for more information
__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;


in your main
0 Kudos
Reply