主题中讨论的其他器件:HALCOGEN
您好!
我正在尝试使用 SL_CRC_Calculate ()函数在闪存中生成 CRC。 但是、我找不到一种方法来访问存储器中.cinit 段的原始地址或起始地址。 我知道链接器提供了符号 __ TI_CINIT_Base 和 __TI_CINIT_Limit、但这并不涵盖从映射文件中可以看到的整个.cinit 段:
SECTION ALLOCATION MAP
output attributes/
section page origin length input sections
-------- ---- ---------- ---------- ----------------
.kernelTEXT
* 0 00000020 00005604
00000020 00002f04 os_tasks.obj (.kernelTEXT)
00002f24 000012dc os_queue.obj (.kernelTEXT)
00004200 00000818 os_event_groups.obj (.kernelTEXT)
00004a18 000004b0 os_portasm.obj (.kernelTEXT)
00004ec8 000003e0 os_port.obj (.kernelTEXT)
000052a8 0000037c os_heap.obj (.kernelTEXT)
.cinit 0 00005628 000000e8
00005628 0000009d (.cinit..data.load) [load image, compression = lzss]
000056c5 00000003 --HOLE-- [fill = 0]
000056c8 0000000c (__TI_handler_table)
000056d4 00000009 (.cinit..kernelBSS.load) [load image, compression = lzss]
000056dd 00000003 --HOLE-- [fill = 0]
000056e0 00000008 (.cinit..bss.load) [load image, compression = zero_init]
000056e8 00000008 (.cinit..kernelHEAP.load) [load image, compression = zero_init]
000056f0 00000020 (__TI_cinit_table)
...
GLOBAL SYMBOLS: SORTED BY Symbol Address
address name
------- ----
00000000 resetEntry
....
0000560c vPortInitialiseBlocks
00005628 __TI_static_base__
000056c8 __TI_Handler_Table_Base
000056d4 __TI_Handler_Table_Limit
000056f0 __TI_CINIT_Base
00005710 __TI_CINIT_Limit
值得注意的是、 上一节结尾(结尾@ 0x5628)和__TI_STATIC_BASE_BASE (0x56f0)之间存在 __TI_ATIC_BASE__和__TI_Handler_Table_Base。
我找不到__TI_static_base__上的任何文档,也找不到处理程序表将始终显示在 Cinit 表之前的任何确认。 是否有方法可以捕获整个.cinit 段?
谢谢!
