Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
9 years, 4 months ago.
How to add support for LPC4088 and LPC4337?
Hello,
I would like to add support for the LPC4088 and LPC4337 so that I can make a custom PCB for them in the future. Is this possible? There is already a development board for each chip, so the settings should already be in the code somewhere? However I don't know which settings are the ones that need to be changed. Thank you.
LPC4088 https://developer.mbed.org/platforms/EA-LPC4088/
LPC4337 https://developer.mbed.org/platforms/LPCXpresso4337/
Question relating to:
1 Answer
9 years, 4 months ago.
Hello,
Ika_shouyu_poppoyaki doesn't support those chips at this moment.
If you need to add unsupported MCU, it may be able to be done on a file "target_table.cpp".
Next code is a table which shows supporting chips and its parameters.
Recipe for adding chip support is available in Japanese only. I'll try to find time to translate.
target_table.h
typedef struct taget_param_st { char *type_name; int id; int ram_size; int flash_size; int sector_size; int write_type; unsigned int ram_start_address; } target_param;
target_table.cpp
target_param target_table[] = { { "unknown ttarget", 0xFFFFFFFF, 1024, 4096, 4096, UUENCODE, 0x10000200 }, { "LPC1114FN28(FDH28)/102", 0x0A40902B, 4096, 32768, 4096, UUENCODE, 0x10000200 }, { "LPC1114FN28(FDH28)/102", 0x1A40902B, 4096, 32768, 4096, UUENCODE, 0x10000200 }, { "LPC810M021FN8", 0x00008100, 1024, 4096, 1024, BINARY, 0x10000300 }, { "LPC811M001JDH16", 0x00008110, 2048, 8192, 1024, BINARY, 0x10000300 }, { "LPC812M101JDH16", 0x00008120, 4096, 16384, 1024, BINARY, 0x10000300 }, { "LPC812M101JD20", 0x00008121, 4096, 16384, 1024, BINARY, 0x10000300 }, { "LPC812M101JDH20", 0x00008122, 4096, 16384, 1024, BINARY, 0x10000300 }, ///added for LPC82x series { "LPC824M201JHI33", 0x00008241, 8192, 32768, 1024, BINARY, 0x10000300 }, { "LPC822M101JHI33", 0x00008221, 4096, 16384, 1024, BINARY, 0x10000300 }, { "LPC824M201JDH20", 0x00008242, 8192, 32768, 1024, BINARY, 0x10000300 }, { "LPC822M101JDH20", 0x00008222, 4096, 16384, 1024, BINARY, 0x10000300 }, ///added for LPC176x series { "LPC1769FBD100", 0x26113F37, 65536, 524288, SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN, UUENCODE, 0x10000200 }, { "LPC1768FBD100", 0x26013F37, 65536, 524288, SECTOR_SIZE_VALIABLE4Kx16_AND_32KxN, UUENCODE, 0x10000200 }, ///added for LPC11U(E)68x series { "LPC11U68JBD100", 0x00007C00, 36864, 262144, SECTOR_SIZE_VALIABLE4Kx24_AND_32KxN, UUENCODE, 0x10000300 }, { "LPC11E68JBD100", 0x00007C01, 36864, 262144, SECTOR_SIZE_VALIABLE4Kx24_AND_32KxN, UUENCODE, 0x10000300 }, };
Table shows type name and its parameters. The parameters can be found on usermanual and datasheet.
Thanks for the reply Tedd. I looked into it a little more, and it seems like HAPI-Tech also made some changes to the int find_sector( int data_size, target_param *tpp ) function when he added support for the LPC11U(E)68x series.
https://developer.mbed.org/users/Hapi_Tech/code/ika_shouyu_poppoyaki/rev/57ad8e04f063
Since the LPC4088 and LPC4337 are both Cortex-M4 chips with hardware floating point unit (FPU), I was wondering if there needs to be more changes than just the target_param table.
I'll look into the datasheet and manual to try and find the following information for both chips and report back. char *type_name; int id; int ram_size; int flash_size; int sector_size; int write_type; unsigned int ram_start_address;
posted by 24 Jul 2015For LPC4088 (Datahseet: http://www.nxp.com/documents/data_sheet/LPC408X_7X.pdf) type_name = LPC4088FET208; id = ???; ram_size = 524288; % 512 kB flash_size = 98304; % 96 kB sector_size = ??? write_type = ??? ram_start_address = ???
I looked into the memory map on page 52 (Table 4.), but I don't know what value to use for the ram start address. ID, sector size, and write time are also not found in the pdf. Hope this helps.
posted by 24 Jul 2015