尊敬的兰先生
我仍然对.cinit 段感到困惑
.cinit 定义:显式初始化全局变量和静态变量的表。
.cinit 0 000065d0 0000004c
000065d0 00000018 UART_AUTO_Baud.obj (.cinit)
000065e8 00000018 fault_handler.obj (.cinit)
00006600 00000018 standard_interrupt.obj (.cinit)
00006618 00000004 -孔-[填充= 0]
.bss 0 0001901c 000006cc 未初始化
0001901c 0000020b main.obj (.bss)
00019227 00000001 UART.obj (.bss)
00019228 00000100 main.obj (.bss:_xn_bins)
00019328 00000080 main.obj (.bss:_program_area)
000193a8 00000058 main.obj (.bss:_PMBus_DCDC_CONFIG)
00019400 00000058 main.obj (.bss:_PMBus_DCDC_CONFIG_translated)
00019458 0000004c main.obj (.bss:_filter0_CP_PMBus_regs)
000194a4 0000004c main.obj (.bss:_filter0_PMBus_regs)
000194f0 0000004c main.obj (.bss:_filter0_start_up_PMBus_regs)
0001953c 0000004c main.obj (.bss:_filter1_PMBus_regs)
00019588 00000034 main.obj (.bss:_adc_values)
000195bc 00000034 main.obj (.bss:_adc_values_avg)
000195f0 00000034 main.obj (.bss:_fiq_data)
00019624 00000034 main.obj (.bss:_PMBus_buffer)
00019658 00000030 main.obj (.bss:_PMBus_DCDC_CONFIG_NONPGED)
00019688 00000030 main.obj (.bss:_PMBus_DCDC_CONFIG_Nonpged_translated)
000196b8 00000020 UART_AUTO_Baud.obj (.bss)
000196d8 00000008 FAULT_handler.obj (.bss)
000196e0 00000008 standard_interrupt.obj (.bss)
cinit 段中的自动初始化变量是 UART_AUTO_Baud.obj 、FAULT_handler.obj 和 standard_interrupt.obj 中的变量。
许多.C 文件中有许多全局变量和静态变量、 为什么 从上述三个 C 文件中选择自动初始化变量? 它们是否有任何特殊用途?
我们是否必须将此 自动初始化变量复制 到 load.asm 中的 RAM? 为什么?
祝你一切顺利
Lei