Giuseppe Modugno

MQX 3.8, FNET 1.2.2 bootloader and IAR Embedded Workbench

Discussion created by Giuseppe Modugno on Jun 19, 2012
Latest reply on Aug 22, 2012 by Mohsin455

I have installed IAR Embedded Workbench, FNET 1.2.2 and MQX 3.8. I'm using TWR-K60N512 + TWR_SER tower system.

 

The FNET bootloader (compiled with IAR) works great with a "barebone" application (always compiled with IAR): I can download the SREC firmware file through TFTP and launch the application from the bootloader with "go" command. It works.

 

Now I want to create an application with MQX RTOS. After adding the instruction (to use RAM for vector table)

 

  #define MQX_ROM_VECTORS 0

 

in user_config.h file (under <MQX install path>\config\twrk60n512) and rebuilding MQX suite, I started from hello example (<MQX install path>\mqx\examples\hello). I can compile the sample application with IAR and it works (I can see "Hello world" message on OSBDM serial port).

 

Now I want to use this hello application with FNET bootloader, so avoiding the first 48KB of internal Flash where the bootloader stay. So I modified the linker configuration file (intflash.icf) and the result is attached to this message.

Moreover, after reading about a wrong behaviour of IAR, I changed the entry point (enabling the "Override default program entry" linker option, setting the "Entry symbol" to "__boot" that seems the first instruction of MQX for Cortex).

Even with this new linker file, I can start, run and debug the application alone (without the bootloader). It works... I can see the "Hello world" message.

 

The last step doesn't work.

I run the bootloader, download the SREC of hello MQX application through TFTP and launch it with "go" command. The starting address seems correct (0xC421), but the bootloader restarts itself. I think it isn't able to launch the application, but I don't know why.

 

Any help or suggestion?

 

Outcomes