emIDE 2.20 does not create working code for ADuCM350

Talk about the emIDE project. Experiences, reviews, tips and tricks

1 post | Page 1 of 1


Posts: 1
Joined: 01 Sep 2014 12:50

emIDE 2.20 does not create working code for ADuCM350
Postby Carlo » 23 Mar 2016 15:39

ADuCM350 is an analog, ARM Cortex M3, microcontroller produced by Analog Devices.

If you try to create a project with the wizard, emIDE will create the files you need for a basic application. Unfortunately, if you will try to flash the binary generated from these files, you will brick the chip.
This happens because there is a piece of flash that should not be used.
From the user guide of the ADuCM350:

The ADuCM350 incorporates 384 kB of embedded flash memory for program code and nonvolatile data storage, 16 kB of EEPROM, and 32 kB of SRAM. The flash memory uses 2 kB of information space (not shown in the memory map), which includes a software kernel as well as manufacturing and test data.

In other words, the memory from 0x00000000 to 0x000007FF should not be used except for writing the ISR table.

This detail can be fixed in the generated Flash.ld file, by either:
- creating a RESET memory from 0x00000000 with LENGTH of 0x800, then set the FLASH memory to start from 0x00000800 and adjust the SECTIONS by moving isr_vector into the RESET memory.

- simpler, by adding:

. = 0x800;

after isr_vector and before text definitions.

The result we need to reach is to avoid absolutely that some code or constant data, except ISR table, will be put in the space between 0x00000000 to 0x000007FF.

It would be good that this customized Flash.ld is copied when the project is created... probably there is a way to add it in "share\emIDE\templates\wizard\Embedded_Application\files", so that it could be used instead of the generic ones, but unfortunately I have not knowledge for doing it.
I hope you will include this tip in the next version.


Carlo Bramini.


1 post | Page 1 of 1

Jump to:

Who is online

Users browsing this forum: No registered users and 1 guest