123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435 |
- #! armclang --target=arm-arm-none-eabi -march=armv7-m -E -x c
- #include "linker_conf.h"
- #include "zephyr/include/generated/autoconf.h"
- #include "zephyr/include/generated/offsets.h"
- #define ROM_ADDR (CONFIG_FLASH_BASE_ADDRESS + CONFIG_FLASH_LOAD_OFFSET)
- #define ROM_SIZE (CONFIG_FLASH_SIZE * 1024)
- #define SRAM_DATA_SIZE AlignExpr(ImageLength(ER_SRAM_DATA),1024)
- #define RAM_SIZE (CONFIG_SRAM_SIZE * 1024 - SENSOR_IMAGE_SIZE - SRAM_DATA_SIZE)
- #define SRAM_DATA_ADDR (CONFIG_SRAM_BASE_ADDRESS + SENSOR_IMAGE_SIZE)
- #define RAM_ADDR (SRAM_DATA_ADDR + SRAM_DATA_SIZE)
- #define SHARE_RAM_ADDR 0x2FF1AE00
- #define SHARE_RAM_SIZE 0x51FF
- #define PSRAM_SIZE (CONFIG_PSRAM_SIZE * 1024)
- #define PSRAM_ADDR CONFIG_PSRAM_BASE_ADDRESS
- #define INIT_STATUS_SIZE (((((ImageLimit(ER_DEVICE_SMPX) - ImageBase(ER_DEVICE_PRE_KERNEL_1)) / _DEVICE_STRUCT_SIZEOF) + 31) / 32) * 4)
- #define DEVICE_BUSY_SIZE (((((ImageLimit(ER_DEVICE_SMPX) - ImageBase(ER_DEVICE_PRE_KERNEL_1)) / _DEVICE_STRUCT_SIZEOF) + 31) / 32) * 4)
- LR1 ROM_ADDR ROM_SIZE { ; load region 1
- ER_HEADER ROM_ADDR EMPTY CONFIG_ROM_START_OFFSET {
- }
- ER_VECTOR ROM_ADDR+CONFIG_ROM_START_OFFSET FIXED {
- * (.exc_vector_table)
- * (.exc_vector_table.*)
- * (.gnu.linkonce.irq_vector_table)
- * (.vectors)
- }
- ER_APP_ENTRY +0 {
- * (.app_entry)
- }
- ER_SRV_ENTRY +0 {
- * (.service_entry)
- }
- ER_VIEW_ENTRY +0 {
- * (.view_entry)
- }
- #include <sensor_algo.sct>
- ER_TEXT AlignExpr(ImageLimit(ER_VIEW_ENTRY)+SENSOR_LOAD_SIZE,8) {
- * (.text)
- * (.text.*)
- * (.gnu.linkonce.t.*)
- * (.glue_7t)
- * (.glue_7)
- * (.vfp11_veneer)
- * (.v4_bx)
- .ANY (+RO-CODE)
- }
- ER_ARM_EXTAB +0 {
- *(.ARM.extab*)
- *(gnu.linkonce.armextab.*)
- }
- ER_ARM_EXIDX +0 {
- *(.ARM.exidx*)
- *(gnu.linkonce.armexidx.*)
- }
- ER_INIT_PRE_KERNEL_1 +0 SORTTYPE Lexical {
- * (.z_init_PRE_KERNEL_1?_ )
- }
- ER_INIT_PRE_KERNEL_1X +0 SORTTYPE Lexical {
- * (.z_init_PRE_KERNEL_1??_ )
- }
- ER_INIT_PRE_KERNEL_2 +0 SORTTYPE Lexical {
- * (.z_init_PRE_KERNEL_2?_ )
- }
- ER_INIT_PRE_KERNEL_2X +0 SORTTYPE Lexical {
- * (.z_init_PRE_KERNEL_2??_ )
- }
- ER_INIT_POST_KERNEL +0 SORTTYPE Lexical {
- * (.z_init_POST_KERNEL?_ )
- }
- ER_INIT_POST_KERNELX +0 SORTTYPE Lexical {
- * (.z_init_POST_KERNEL??_ )
- }
- ER_INIT_APPLICATION +0 SORTTYPE Lexical {
- * (.z_init_APPLICATION?_ )
- }
- ER_INIT_APPLICATIONX +0 SORTTYPE Lexical {
- * (.z_init_APPLICATION??_ )
- }
- ER_INIT_SMP +0 SORTTYPE Lexical {
- * (.z_init_SMP?_ )
- }
- ER_INIT_SMPX +0 SORTTYPE Lexical {
- * (.z_init_SMP??_ )
- }
- ER_INIT_POWER_MAX +0 SORTTYPE Lexical {
- * (.z_init_POWER_MAX?_ )
- }
- ER_INIT_POWER_MAXX +0 SORTTYPE Lexical {
- * (.z_init_POWER_MAX??_ )
- }
- ER_INIT_ERROR +0 SORTTYPE Lexical {
- * (.z_init_?*)
- }
- ER_DEVICE_PRE_KERNEL_1 +0 SORTTYPE Lexical {
- * (.z_device_PRE_KERNEL_1?_ )
- }
- ER_DEVICE_PRE_KERNEL_1X +0 SORTTYPE Lexical {
- * (.z_device_PRE_KERNEL_1??_ )
- }
- ER_DEVICE_PRE_KERNEL_2 +0 SORTTYPE Lexical {
- * (.z_device_PRE_KERNEL_2?_ )
- }
- ER_DEVICE_PRE_KERNEL_2X +0 SORTTYPE Lexical {
- * (.z_device_PRE_KERNEL_2??_ )
- }
- ER_DEVICE_POST_KERNEL +0 SORTTYPE Lexical {
- * (.z_device_POST_KERNEL?_ )
- }
- ER_DEVICE_POST_KERNELX +0 SORTTYPE Lexical {
- * (.z_device_POST_KERNEL??_ )
- }
- ER_DEVICE_APPLICATION +0 SORTTYPE Lexical {
- * (.z_device_APPLICATION?_ )
- }
- ER_DEVICE_APPLICATIONX +0 SORTTYPE Lexical {
- * (.z_device_APPLICATION??_ )
- }
- ER_DEVICE_SMP +0 SORTTYPE Lexical {
- * (.z_device_SMP? )
- }
- ER_DEVICE_SMPX +0 SORTTYPE Lexical {
- * (.z_device_SMP?? )
- }
- ER_DEVICE_POWER_MAX +0 SORTTYPE Lexical {
- * (.z_device_POWER_MAX? )
- }
- ER_DEVICE_POWER_MAXX +0 SORTTYPE Lexical {
- * (.z_device_POWER_MAX?? )
- }
- ER_APP_SHMEM +0 SORTTYPE Lexical {
- * (.app_regions.*)
- }
- ER_NET_12 +0 SORTTYPE Lexical {
- * (.net_l2.init)
- * (.net_l2.init*)
- }
- ER_BT_CHANNELS +0 SORTTYPE Lexical ALIGNALL 4 {
- * (._bt_l2cap_fixed_chan.static.*)
- }
- ER_BT_BR_CHANNELS +0 SORTTYPE Lexical ALIGNALL 4 {
- * (._bt_l2cap_br_fixed_chan.static.*)
- }
- ER_BT_SERVICES +0 SORTTYPE Lexical ALIGNALL 4 {
- * (._bt_gatt_service_static.static.*)
- }
- ER_LOG_CONST +0 SORTTYPE Lexical {
- * (.log_const_*)
- }
- ER_LOG_BACKENDS +0 SORTTYPE Lexical {
- * (._log_backend.*)
- }
- ER_SHELL +0 SORTTYPE Lexical {
- * (._shell.static.*)
- }
- ER_SHELL_ROOT_CMDS +0 SORTTYPE Lexical {
- * (.shell_root_cmd_*)
- }
- ER_FONT_ENTRY +0 SORTTYPE Lexical {
- * (._cfb_font.*)
- }
- ER_TRACING_BACKENDS +0 {
- * (._tracing_backend.*)
- }
- ER_RODATA +0 ALIGN 4 {
- * (.rodata)
- * (.rodata.*)
- * (.gnu.linkonce.r.*)
- .ANY (+RO-DATA)
- }
- ER_SRAM_DATA SRAM_DATA_ADDR ALIGN 8 {
- * (.sleepfunc)
- * (.sleepfunc.*)
- * (.defunc)
- * (.lvglfunc)
- * (.sleep.data*)
- }
- ER_ATTDATA PSRAM_ADDR {
- * (.attruntimedata)
- }
- ER_RAMFUNC +0 {
- * (.ramfunc)
- * (.ramfunc.*)
- }
- ER_DATAS +0 ALIGN 8 {
- * (.data)
- * (.data.*)
- * (.kernel.*)
- }
- ER_AAC_P_OVERLAY_DATA +0 ALIGN 4 OVERLAY {
- aac_a_1.o(+RW)
- aac_a_2.o(+RW)
- aac_a_3.o(+RW)
- aac_s_1.o(+RW)
- }
- ER_MP3_P_OVERLAY_DATA +0 ALIGN 4 OVERLAY{
- m1.o(+RW)
- m2.o(+RW)
- }
- ER_WAV_P_OVERLAY_DATA +0 ALIGN 4 OVERLAY {
- wav_s_1.o(+RW)
- wav_w_1.o(+RW)
- wav_w_2.o(+RW)
- wav_w_3.o(+RW)
- }
- ER_APE_P_OVERLAY_DATA +0 ALIGN 4 OVERLAY {
- ape_c_1.o(+RW)
- ape_d_1.o(+RW)
- ape_e_1.o(+RW)
- ape_i_1.o(+RW)
- ape_p_1.o(+RW)
- ape_s_1.o(+RW)
- ape_test.o(+RW)
- }
- ER_FLAC_P_OVERLAY_DATA +0 ALIGN 4 OVERLAY {
- fla_p_1.o(+RW)
- fla_s_1.o(+RW)
- fla_s_2.o(+RW)
- }
- ER_WMA_P_OVERLAY_DATA +0 ALIGN 4 OVERLAY {
- w13_i_1.o(+RW)
- w13_s_1.o(+RW)
- w13_a_1.o(+RW)
- }
- ER_DEVICE_STATE +0 SORTTYPE Lexical {
- * (.z_devstate* )
- }
- ER_PM_DEVICE_SLOTS +0 SORTTYPE Lexical {
- * (.z_pm_device_slots* )
- }
- ER_DEVICE_INIT_STATUS +0 FILL 0 INIT_STATUS_SIZE {
- }
- ER_DEVICE_BUSY +0 FILL 0 DEVICE_BUSY_SIZE {
- }
- ER_INITSHELL +0 {
- * (.shell_module_*)
- * (.shell_cmd_*)
- }
- ER_LOG_DYNAMIC +0 SORTTYPE Lexical {
- * (.log_dynamic_*)
- }
- ER_STATIC_THREAD +0 SORTTYPE Lexical ALIGNALL 4 {
- * (.__static_thread_data.static.*)
- }
- ER_K_TIMER +0 ALIGNALL 4 {
- * (._k_timer.static.*)
- }
- ER_K_MEM_SLAB +0 ALIGNALL 4 {
- * (._k_mem_slab.static.*)
- }
- ER_K_MEM_POOL +0 ALIGNALL 4 {
- * (._k_mem_pool.static.*)
- }
- ER_K_HEAP +0 ALIGNALL 4 {
- * (._k_heap.static.*)
- }
- ER_K_SEM +0 ALIGNALL 4 {
- * (._k_sem.static.*)
- * (._sys_sem.static.*)
- }
- ER_K_MUTEX +0 ALIGNALL 4 {
- * (._k_mutex.static.*)
- }
- ER_K_QUEUE +0 ALIGNALL 4 {
- * (._k_queue.static.*)
- * (._k_fifo.static.*)
- * (._k_lifo.static.*)
- }
- ER_K_STACK +0 ALIGNALL 4 {
- * (._k_stack.static.*)
- }
- ER_K_MSGQ +0 ALIGNALL 4 {
- * (._k_msgq.static.*)
- }
- ER_K_MBOX +0 ALIGNALL 4 {
- * (._k_mbox.static.*)
- }
- ER_K_PIPE +0 ALIGNALL 4 {
- * (._k_pipe.static.*)
- }
- ER_NET_BUF_POOL +0 SORTTYPE Lexical ALIGNALL 4 {
- * (._net_buf_pool.static.*)
- }
- ER_NET_IF +0 SORTTYPE Lexical ALIGNALL 4 {
- * (.net_if.*)
- }
- ER_NET_IF_DEV +0 SORTTYPE Lexical ALIGNALL 4 {
- * (.net_if_dev.*)
- }
- ER_NET_L2_DATA +0 SORTTYPE Lexical ALIGNALL 4 {
- * (.net_l2.data)
- * (.net_l2.data*)
- }
- }
- LR2 AlignExpr(ImageLimit(ER_NET_L2_DATA), 512) { ; load region 2
- ER_SW_ISR_TABLE +0 ALIGN 4 FIXED {
- * (.gnu.linkonce.sw_isr_table)
- }
- ER_WAV_P_OVERLAY_BSS +0 ALIGN 4 OVERLAY FIXED{
- wav_s_1.o(+ZI)
- wav_w_1.o(+ZI)
- wav_w_2.o(+ZI)
- wav_w_3.o(+ZI)
- }
- ER_FLAC_P_OVERLAY_BSS +0 ALIGN 4 OVERLAY FIXED{
- fla_p_1.o(+ZI)
- fla_s_1.o(+ZI)
- fla_s_2.o(+ZI)
- }
- ER_MP3_P_OVERLAY_BSS +0 ALIGN 4 OVERLAY FIXED{
- m1.o(+ZI)
- m2.o(+ZI)
- }
- ER_WMA_P_OVERLAY_BSS +0 ALIGN 4 OVERLAY FIXED{
- w13_i_1.o(+ZI)
- w13_s_1.o(+ZI)
- w13_a_1.o(+ZI)
- }
- ER_APE_P_OVERLAY_BSS +0 ALIGN 4 OVERLAY FIXED{
- ape_c_1.o(+ZI)
- ape_d_1.o(+ZI)
- ape_e_1.o(+ZI)
- ape_i_1.o(+ZI)
- ape_p_1.o(+ZI)
- ape_s_1.o(+ZI)
- ape_test.o(+ZI)
- }
- ER_AAC_P_OVERLAY_BSS +0 ALIGN 4 OVERLAY FIXED{
- aac_a_1.o(+ZI)
- aac_a_2.o(+ZI)
- aac_a_3.o(+ZI)
- aac_s_1.o(+ZI)
- }
- ER_BSS +0 ALIGN 4 FIXED {
- * (.bss)
- * (.bss.*)
- * (COMMON)
- * (.kernel_bss.*)
- * (.bthost_bss*)
- * (.btsrv_bss*)
- .ANY (+ZI)
- }
- ER_NOINIT +0 ALIGN 4 FIXED {
- * (.noinit)
- * (.noinit.*)
- * (.kernel_noinit.*)
- }
- ER_PSRAM_NOINIT +0 ALIGN 64 FIXED{
- * (.lvgl.noinit.malloc*)
- * (.vglite.noinit.mem_pool*)
- * (.vglite.noinit.malloc*)
- #ifdef CONFIG_VIDEO_PLAYER
- * (.VIDEO_PSRAM_REGION*)
- #endif
- }
- ER_PSRAM_NOSAVE +0 ALIGN 64 FIXED{
- * (.UI_PSRAM_REGION*)
- * (.RES_PSRAM_REGION*)
- * (.BMPFONT_PSRAM_REGION*)
- * (.font.bss.cache*)
- * (.tile.bss.cache*)
- }
- ER_RAM_END (PSRAM_ADDR+PSRAM_SIZE) EMPTY 0 {
- }
- }
- LR3 SHARE_RAM_ADDR SHARE_RAM_SIZE { ; load region 3
- ER_SHARE_RAM_BSS +0 ALIGN 4 FIXED {
- * (.DSP_SHARE_RAM*)
- }
- }
- LR4 RAM_ADDR RAM_SIZE { ; load region 4
- ER_SRAM_BSS +0 ALIGN 4 {
- }
- ER_SRAM_NOINIT +0 ALIGN 0x200 FIXED{
- #ifdef CONFIG_IRQ_VECTOR_IN_SRAM
- * (.srm_irq_vector*, +FIRST)
- #endif
- *(.interrupt.noinit.stack*)
- *(.main.noinit.stack*)
- *(.uisrv.noinit.stack*)
- *(.lvgl.noinit.gpu*)
- *(.spinand.bss.BLK_ARRAY*)
- *(.spinand.bss.PAGE_CACHE_BUF*)
- *(.system.bss.sdfs_cache*)
- *(.diskio.cache.pool*)
- *(.jpeg.bss.temp_buffer*)
- *(.ram.noinit*)
- *(.decompress.bss.cache*)
- *(.lvgl.noinit.vdb*)
- *(.ram.noinit.stack*)
- *(.audio.bss.ouput_pcm*)
- *(.audio.bss.input_pcm*)
- *(.act_s2_not_save_mem*)
- }
- ER_SRAM_SLEEP_SHUTDOWN +0 ALIGN 0x200 FIXED{
- * (.sram.noinit.sufacebuffer*)
- }
- ER_SIM_SRAM_NOINIT +0 ALIGN 4 {
- * (.sram.noinit.actlog*)
- }
- ER_SRAM_END (RAM_ADDR+RAM_SIZE) EMPTY 0 {
- }
- }
|