I'am using ADUCM3029 as an MCU with mode 0 configuration for its flash memory.
ro code ro data rw
My code current memory allocation is: Total: 14 119 861 5 185
I have the intention to add a fat file system module to manage files on an external sdcard memory which wil add more 8000 bytes to my code.
I understand that the ADUCM3029 flash memory configuration doesn't accept more than 32kB Instruction RAM, 32kB Data RAM [Mode 0]. and according to the map file[IAR] there are more modules added to the application adding more 12kB of ro code memory and making it impossible to add the filesystem module.
 = C:\..\Debug\Obj = command line = dl7M_tln.a = m7M_tl.a = rt7M_tl.a = shb_l.a 26 998 bytes of readonly code memory 895 bytes of readonly data memory 6 973 bytes of readwrite data memory
Is there a possibility to disintegrate one of these modules to free space on the code-memory?
Disable all printing functions like DEBUG_MESSAGE , DEBUG_RESULT, common_Pass and other same function. Also exclude common.h on your main program.
Thank you it reduced my ro code by 1kB and my firm still overpass 32kBytes.
I wonder if at this current state of the firmware using ADUCM3029:
-Errors related to memory can occur during execution (Flash and Sram)?
-OTA update of the firmware is impossible?
Are you trying to write your code to the ISRAM? It is recommended to use its flash memory in order to retain all of your code when the MCU loss its power.
aminated said:I understand that the ADUCM3029 flash memory configuration doesn't accept more than 32kB Instruction RAM, 32kB Data RAM [Mode 0].
-Can you give more details about this one? Flash memory is different on SRAM memory, base on ADUCm3029 HRM mode 0 will give you 256kB flash memory, 32kB ISRAM and 32kB DSRAM.