My array is too big for DA14580 ROM

⚠️
Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at//www.xmece.com/support. We’ll be fixing bugs / optimising the searching and tagging over the coming days.
4 posts / 0 new
Last post
daniel59
Offline
Last seen:1 year 5 months ago
Joined:2016-01-08 04:34
My array is too big for DA14580 ROM

I have a big array for my OLED display, but Keil cannot build it.

is there any method? I have an external 1M SPI FLASH on my board.

Device:
PM_Dialog
Offline
Last seen:1 day 21 hours ago
Staff
Joined:2018-02-08 11:03
Hi daniel59,

Hi daniel59,

Could you please clarify if you mean ROM or RAM? Because you are not able to download firmware into the ROM. I am not able to understand your question, do you mean to program the SPI Flash and boot from there? Also, which is the length of your project? The available memories blocks of DA14580 for downloading firmware are the system RAM, the OPT. and an external SPI flash, as in your case. For getting more information about the memories DA14580 chip, please check the datasheet. You can use the Smart Snippet toolbox in order to program the SPI Flash from the SPI Flash/EEPROM tab. Be aware that you can download firmware into SPI Flash either through JTAG or through UART interface. Please read the section 11 SPI Flash Programmer of theUM-B-083 SmartSnippets Toolbox User Manualuser manual. You can download it from the Software&Tools tab of DA14580 chip from our support page. If you have not downloaded the Smart Snippet, you can download it from the Tools windows of Software&Tools tab. Could you please let me know which SPI Flash are you using?

Thanks, PM_Dialog

daniel59
Offline
Last seen:1 year 5 months ago
Joined:2016-01-08 04:34
No, that is not my question.

No, that is not my question.

my code now have a big array, when i build my code, keil shows:

*** Using Compiler 'V5.06 update 2 (build 183)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'empty_peripheral_template_580'
compiling user_empty_peripheral_template.c...
linking...
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching arch_system.o(.data).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching arch_patch.o(.constdata).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching mvars.o(.data).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching mvars.o(.data).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching errno.o(.data).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching jump_table.o(.text).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching app_easy_timer.o(.text).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching app_easy_timer.o(.text).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching user_custs1_def.o(.data).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching user_custs1_def.o(.data).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching user_custs1_def.o(.data).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6406E: No space in execution regions with .ANY selector matching user_custs1_def.o(.data).
\ out_580 \ empty_peripheral_template_580。axf:错误: L6407E: Sections of aggregate size 0x30 bytes could not fit into .ANY selector(s).
Not enough information to produce a SYMDEFs file.
Not enough information to produce a FEEDBACK file.
Not enough information to list image symbols.
Not enough information to list the image map.
Finished: 4 information, 0 warning and 13 error messages.
".\out_580\empty_peripheral_template_580.axf" - 13 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:07

But if i separate the array into 2 arrays, it can be build.

I think it means my array is too big for DA14580's RAM, so can I put that array into SPI FLASH?

My FLASH is w25x10cl.

PM_Dialog
Offline
Last seen:1 day 21 hours ago
Staff
Joined:2018-02-08 11:03
Hi daniel59,

Hi daniel59,

Apologies but didn’t understand exactly your question. Yes, that’s correct, the array is probably too big for DA14580's RAM, so you should put into the SPI Flash. If you are not aware how to use the SPI flash driver, please check the SPI Flash Memory Example of the SDK. This example demonstrates how to initiate, read, write and erase an SPI Flash memory using the SPI Flash driver. The project is located in the projects\target_apps\peripheral_examples\spi\spi_flash SDK directory.

Thanks, PM_Dialog