Hi,
I have a problem with USB bootloader. I downloaded sample code from NXP site. I followed instructions AN10866. Bootloader works fine if I load small program into LPC. This small program uses interrupts. But If I load large program then interrupts do not work. Is this a problem with Vector Table? How to check it? Please help.
In the LPC1768 (Cortex-M3) there are only two modes: - Thread mode - TM - Handler mode – HM. In addition, there are two levels with different rights of access to key areas in the address space: - Privileged Level – PL - Unprivileged/User Level – UL.
That was a huge help thanks! All I had to do was add
mov R0, #0x00 msr CONTROL, R0
into my bootloader startup and everything works! I needed my code to be in Priveleged mode. I was looking for the modes in the NXP User's Manual instead of in the Cortex M3 core manual.
Hi all,
I have the same problem with NXP Ethernet bootloader.
The bootloader works fine with a small program but with bigger program, the user application doesn't start at all. It seems to be stuck at the same address in start_up (command STR Rd, [Rn, Offset]).
The same application works fine, if I compile it to start at address 0x00.
Vector table has been changed to the a new address and it works fine with the smaller application.
I have tried to switch optimization level, it doesn't help at all. I have tried to set SP register before jumping to the user application. No help. Both applications are in privileged mode.
Please help me out...
Thanks in advance Piritta