主题中讨论的其他部件: AM3359
工具/软件:Code Composer Studio
使用在7.1 Ubuntu 16.04 LTS下运行的CCS SRAS.RAM 0.0.0016万 尝试在AM3352的Cortex-A8上调试引导加载程序 ,其中应加载引导加载程序并从0x402F0400在“SRAM internal”区域中运行。 0x402FFFFFFF。 bootloader使用 gcc-arm-none-eabi-4_9-2015q3编译器编译。
尝试加载程序时,加载失败,并在控制台中报告以下错误:
CortxA8:输出:**** AM3352_SOM初始化正在进行中.......... CortxA8:输出:**** AM335xOPP == Turbo is in progress (OPP == Turbo正在进行AM335x所有PLL配置).......... CortxA8:输出:从SYSBOOT[15:14]读取输入时钟:24MHz CortxA8:输出:****转至旁路... CortxA8:输出:****已绕过,正在更改值... CortxA8:输出:****锁定臂PLL CortxA8:输出:****核心绕过 CortxA8:输出:****现在锁定核心... CortxA8:输出:****内核锁定 CortxA8:输出:****每个DPLL旁路 CortxA8:输出:****每个DPLL锁定 CortxA8:输出:**** AM335x OPP == Turbo的所有PLL配置已完成........ CortxA8:输出:**** AM3352_SOM初始化已完成****************** CortxA8:在长度0x7ff0的第0页上0x402f0074处写入内存块时出错:(错误-1065 @ 0x3D5A)无法访问设备内存。 验证内存地址是否在有效内存中。 如果错误仍然存在,请确认配置,关闭电源后重启板和/或尝试更可靠的JTAG设置(例如,Lower TCLK)。 (仿真软件包6.0 CortxA8.) 628.1 :文件加载器:验证失败:目标写入0x402F0074 CortxA8:GEL:文件:/home/MR_halfworD/AM3352-SOM-EVB_Bare_metal/Debug/bootloader/bootloader.out:加载失败。
调试器报告尝试写入从 地址 0x402f0074开始的大小为0x7ff0字节的内存块。 但是,该起始地址和大小与程序中的部分不匹配。 在bootloader ELF文件上运行cG_xml sectti实用程序可确认开始加载地址按 预期为0x402f0400:
~/ti/CG_xml/utils/ofd6x -x bootloader/bootloader.out |~/ti/CG_xml/bin/sectti 正在从stdin读取... *************** 文件报告:bootloader/bootloader.out **************************************************** 名称:大小(十进制)大小(十六进制)类型加载地址运行地址 --------------------------- :----------- -------- -------- -------- rs-速记: 32 0x0.002万代码0x402f0400 0x402f0400 文字: 3.5168万 0x0.896万代码0x402f0420 0x402f0420 数据: 1084 0x0.0043万c数据0x402f8d88 0x402f8d88 bss: 2184 0x0.0888万 UDATA 0x402f9200 0x402f9200 堆栈: 8192 0x0.2万 UDATA 0x402f9a90 0x402f9a90 ---------------------------------- 按区域类型列出的总计 ---------------------------------- 未初始化的数据: 1.0376万 0x0.2888万 初始化数据: 1084 0x0.0043万c 代码: 3.52万 0x0.898万
附件是加载失败中的调试服务器日志文件 。e2e.ti.com/.../4645.debug_5F00_server.log.zip
在调试服务器日志中搜索不正确的加载地址 0x402f0074时,它首先出现在日志的部分中,该部分是关于解析要加载的程序的ELF信息:
0x7FD3469FB700 3203827.00320382亿 4 OFS I:PT_LOAD: 0x7FD3469FB700 3203827.00320382亿 4 OFS D:OFS load Section Added:name:.text 0x7FD34696FB700 3203827.00320382亿 4 OFS D:大小(字节):3.72万或0x9150 0x7FD34.6970032亿 3203.8232032亿4 OFS D:加载位置:0x4069FB2700FS :2700:0x407F0704F0730074:0730074:0x4FD:0x4F0704F0704FFS:0704:0x407F3384 : 内存页面:0 0x7FD3469FB700 3203827.00320382亿 4 OFS D:文件中的偏移:116或0x74 0x7FD3469FB700 3203827.00320382亿 4 OFS D:OFS加载部分添加:名称:填充 0x7FD3469FB700 3203827.00320382亿 4 OFS D:大小(字节):10444或0x28cc 320cc 3207FD3469FB700 32043469 3204 OFS70.032万 OFS:加载4 :0x7FFD:0x7F0709FD: 运行位置:0x402f91c4 0x7FD3469FB700 3203827.00320382亿 4 OFS D:内存页面:0 0x7FD3469FB700 3203827.00320382亿 4 OFS D:文件中的偏移:0或0x0
因此,认为问题在于CCS 7.1 调试器错误地读取了要从bootloader.out ELF文件加载的部分的地址。 包含bootloader.out文件的生成目录已附加 。e2e.ti.com/.../bootloader.zip
https://github.com/Chester-Gillon/AM3352-SOM-EVB_bare_metal/blob/b99ab552f96f4cab27094f9e5937e012725eee90/bootloader/targetConfigs/AM3352.ccxml 是2.7094万是尝试5937尝试调试1.2725万调试bootloader.out3352.bootloader.out时使用的目标配置文件。 目标配置使用Cortex-A8和ICEPIN_D上的自定义GEL文件,其中GEL文件位于 https://github.com/Chester-Gillon/AM3352-SOM-EVB_bare_metal/tree/b99ab552f96f4cab27094f9e5937e012725eee90/gel_files 目录2.7094万目录中5937中。1.2725万。