This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] UCD3138A:UCD3138A 关于.Cinit 段中的自动初始化变量

Guru**** 2341440 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/612203/ucd3138a-ucd3138a-about-auto-initialized-variable-in-cinit-section

器件型号:UCD3138A

 尊敬的兰先生

我仍然对.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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Lei、

    我已联系 UCD 团队、工程师应立即回复您的帖子。

    此致

    Peter
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    自动初始化变量是声明包含值的变量、如下所示:

    int32 Otto = 1234;

    我们代码中的大多数变量都是非自动初始化的、如下所示:

    Int32柴油机;

    我们充分利用 load.asm 将 RAM 初始化为所有零的事实、实际上会将所有未初始化的变量初始化为零。

    因此、所有表示未初始化的变量都将具有零值、但它们不需要在 cinit 表中输入。