工具/软件:TI C/C++编译器
您好,
我正在使用6.0 .1.0.004万 和TI v 5.1 .4。 当我正在构建starter ware引导加载程序代码时,在.map文件中,它显示.data部分未初始化。 全局变量未初始化。 它正在使用垃圾值初始化全局变量。 例如,考虑以下全局变量
tOPConfig oppTable[]=
{
{MPUPLL_M_275_MHz,PMIC_VOLT_SEL_1100MV}, /* OPP10.0275万Mhz - 1.1V *
{MPUPLL_M_500_MHz,PMIC_VOLT_SEL_1100MV}, /* OPP10.05万MHz - 1.1V *
{MPUPLL_M_600_MHz,PMIC_VOLT_SEL_1200MV}, /* OPP12.06万Mhz - 1.2V */
{MPUPLL_M_720_MHz,PMIC_VOLT_SEL_1260MV}, /* OPP Turbo 720Mhz - 1.26v */
{MPUPLL_M_300_MHz,PMIC_VOLT_SEL_0950MV}, /* OPP5.03万MHz - 950mv */
{MPUPLL_M_300_MHz,PMIC_VOLT_SEL_1100MV}, /* OPP10.03万MHz - 1.1V *
{MPUPLL_M_600_MHz,PMIC_VOLT_SEL_1100MV}, /* OPP10.06万Mhz - 1.1V *
{MPUPLL_M_720_MHz,PMIC_VOLT_SEL_1200MV}, /* OPP12.072万Mhz - 1.2V */
{MPUPLL_M_800_MHz,PMIC_VOLT_SEL_1260MV}, /* OPP Turbo 800MHz - 1.26v */
{MPUPLL_M_1000_MHz,PMIC_VOLT_SEL_1325MV} /* OPP nitro 1000MHz - 1.325v *
};
使用垃圾值初始化整个oppTable[]。
我的链接程序.cmd文件是
-stack 0x0008 /*软件堆栈大小 */
-堆 0x2000 /*堆区大小 */
-e条目
/*由于我们使用了'entry'作为入口点符号,因此编译器会发出 */
/*警告(#1.0063万-D:指定了"_c_int00"以外的入口点符号: */
/*"条目")。 CCS版本(5.1 .0.0.8万)停止从命令 */生成
/*行。 因此,此警告被 */抑制
/*。 */
--diag_suppress=1.0063万
/*指定系统内存映射*/
内存
{
iRAM_MEM :org = 0x402F0400 len = 0x1FBFF /* RAM */
}
/*指定分配给内存的部分*/
章节
{
.init :{
BL_init.obj (.text)
}加载> 0x402F0400
text :load > IRAM_MEM /* code */
数据 :LOAD > IRAM_MEM /*已初始化全局变量和静态变量。 */
.bss : LOAD > IRAM_MEM /* Uninitialized or zero initialized */
/*全局变量和静态变量。 */
运行启动(BSS_START)
运行结束(BSS_END)
.const : LOAD > IRAM_MEM /*全局常量 */
.cinit :load > IRAM_MEM
.stack :load > 0x4030FFF0/* software system stack */
}
我的内存映射文件.map文件是
入口点符号:"入口" 地址:402f0400
内存配置
名称 使用的原点 长度 未使用 的属性 填充
---------------- ----------------- ------------------- ----------------- ----------------- --------
iRAM_MEM 402f0400 0001fbff 0000fbe1 0001001e10001001e RWIX
分段分配图
运行源站 负载源站 长度 初始化长度吸引成员
-------- -------- -------- -------- ——— ---------
402f40.0402万 402f0400 0000ef2c 0000ef2c r-x
402f40.0402万 402f40万 0000.0088万 00000088 r-x .init
402f48.8402万 402f0488 0000eea4 0000eea440000eea4 r-x .text
402ff32c 402ff32c 0万c00 000000000万00000 rw-0万 rw-
402ff32c 402ff32c 0万a1d 0万 rw-.bss
402ffd4c 402ffd4c 0.0001万e0 00000000000000000 rw-.data
402fff2c 402fff2c 0万20 000000202万00020 r--0.002万 r--
402fff2c 402fff2c 0万20 000000202万00020 r--0.002万 r--.const
402fff5.0402万 402fff5万 0000.009万 00000090 r--
402fff5.0402万 402fff5万 0000.009万 00000090 r--.cit
4030fff0 4030fff004030fff0 000000080万08 000000000.8万00000 rw-0万 rw-
4030fff0 4030fff004030fff0 000000080万08 000000000.8万00000 rw-0万 rw-.stack
区段分配图
输出 属性/
书帖 页面 原点 长度 输入书帖
----------------- -------- -------- --------
init 0402 402f40万 0000.0088万
402f40万 0000.0088万 BL_init.obj (.text)
文本 0402 402f0488 0000eea4
402f0488 00001d10 drivers.lib:UART_IRDA_cir.obj (.text)
402f2198 00001c8c :gpmc.obj (.text)
402f3e2400.0019万 f8 utils.lib:uartStdio.obj (.text)
402f581c 0.1338万 bl_platform.obj (.text)
402f6b5400.0012万 a8 libnand_.lib:nand_gpmc.obj (.text)
402f7dfc 0.11万 :nandlib.obj (.text)
402f8efc 0万b50 drivers.lib : gpio_v2.obj (.text)
402f9a4c 0万ad0 :hsi2c.obj (.text)
402fa51c 0.0009万e4 platform.lib : gpio.obj (.text)
402faf0.0007万 d4 :SDS_DPE_Host_Pinmix.obj (.text)
402fb6d400.0007万 c0 drivers.lib:elm.obj (.text)
402fbe9400.0006万 f0 platform.lib:dmtimer.obj (.text)
402fc5.84亿 9c drivers.lib:dmtimer.obj (.text)
402fcc2万 0000.0638万 utils.lib:ascii.obj (.text)
402fd25.8万 0000.0448万 platform.lib:hsi2c.obj (.text)
402fd6a00000042 c :UART.OBJ (.text)
402fdacc 0.0003万e4 system.lib : interrupt.obj (.text)
402fdeb000000380 BL_nand_.obj (.text)
402fe23万 0000.031万 platform.lib:nand.obj (.text)
402fe54万 0000.028万 utils.lib:consoleUtils.obj (.text)
402fe7c000000220 platform.lib : cpld_obj(.text)
402fe9e000000180 rtsv7A8_a_le_eabi.lib:memcpy32.obj (.text)
402feb6万 0000.017万 platform.lib : sysdelay.obj (.text)
402fecd00000014 c :uartConsole.obj (.text)
402fee1c 0万f0 rtsv7A8_a_le_eabi.lib : u_div32.obj (.text)
402fef0c 0万d4 :auto_init.obj (.text)
402fefe0万 b0 :memset32.obj (.text)
402ff9万 0000.0098万 :copy_decpress_rle.obj (.text)
402ff12.8万 0000.008万 :cpy_tbl.obj (.text)
402ff1a800000060 system.lib:cpu.obj (.text)
402ff20.8万 0000.0054万 main.obj (.text)
402ff25c 0.0004万c utils.lib:delay.obj (.text)
402ff2a800000038 system.lib:device.obj (.text)
402ff2e000000020 rtsv7A8_a_le_eabi.lib:copy_zero_init.obj (.text:decpress:Zi)
402ff30万 0000.0014万 :copy_decpress_none.obj (.text:decpress:none)
402ff3.14亿 0c system.lib : cpu.obj (.text:CPUIntStatus)
402ff32万 0000.0008万 rtsv7A8_a_le_eabi.lib:copy_decpress_rle.obj (.text:decpress:rle24)
402ff32.8万 0000.0004万 :I_DIV0.OBJ (.text)
.bss 0402 ff32c 0万a1d 未初始化
402ff32c 0.08万 BL_nand_.obj (.bss:rxData)
402ffb2c 0.02万 system.lib:interrupt.obj (.bss:fnRAMVectors)
402ffd2c 0.0004万 (.common:dataFromSlave)
402ffd3万 0000.0004万 (.common:dataToSlave)
402ffd3.4万 0000.0004万 (.common:deviceVersion)
402ffd3.8万 0000.0004万 (.common:freqMultDDR)
402ffd3c 0.0004万 (.common:oppMaxIdx)
402ffd4万 0000.0004万 (.common:rCount)
402ffd4.4万 0000.0004万 (.common:tCount)
402ffd4.8万 0000.0001万 (.common:ConsoleType)
数据 0402 ffd4c 0.0001万e0 未初始化
402ffd4c 0.0108万 BL_nand_.obj (.data)
402ffe5400万 cc BL_platform.obj (.data)
402fff2万 0000.0008万 main.obj (.data)
402fff2.8万 0000.0004万 platform.lib : sysdelay.obj (.data)
const 0402 fff2c 0.002万
402fff2c 0.0014万 utils.lib : uartStdio.obj (.const:.string)
402fff4万 0000.0008万 BL_platform.obj (.const:.string)
402fff4.8万 0000.0004万 utils.lib:uartStdio.obj (.const)
.cinit 0402 402fff5万 0000.009万
402fff500000006 a (.cinit.data.load)[加载图像,压缩= RLE]
402fffba 0.0002万 --孔--[填充=0]
402fffbc 0万c (__TI_handler_table)
402fffc800000008 (.cinit.bss.load)[加载映像,压缩= zero_init]
402fffd000000010 (__TI_cinit_table)
堆栈 04030 4030fff000000008 未初始化
4030fff0 00000008000000008 --孔--
链接程序生成的复制表
__TI_cinit_table @ 402fffd0记录:2,大小/记录:8,表大小:16
数据:load addr=402fff50,load size=0.0006万a bytes,run addr=402ffd4c,run size=0.0001万e0 bytes,compression=rLE
bss:load addr=402fffc8,load size=0.0008万 bytes,run addr=402ff32c,run size=0万a1d bytes,compression=zero_init
链接程序生成的处理程序表
__TI_handler_table @ 402fffbc记录:3,大小/记录:4,表大小:12
索引:0,处理程序:__TI_decpress_rle24
索引:1,处理程序:__TI_decpress_none
索引:2,处理程序:__TI_ZERO_INIT
请帮助我们解决问题。
谢谢,此致
Raja