Green Hills工程里,目标处理器并不只是一个芯片名称。编译器会根据处理器型号决定可用指令和相应的代码生成方式,调试环境还要用同一套硬件信息去连接目标板。Green Hills目前覆盖ARM、Power Architecture、AURIX/TriCore、RH850、x86、RISC-V等处理器平台,不同工具链安装包能够选择的具体型号并不相同。工程从旧项目复制过来、更换开发板或者升级芯片后,如果仍沿用原来的处理器配置,编译可能报错,也可能直到下载运行时才暴露问题。
一、Green Hills怎么配置目标处理器
MULTI提供New Project Wizard、Project Management和Build Options等工程配置入口。新工程可以在创建阶段确定处理器平台,已有项目则要查看实际构建时采用的处理器选项。
1、创建工程时选择处理器平台
新项目刚建立时,先把运行环境和处理器系列选准,后面的工程模板、编译设置和调试配置才容易对应起来。
①、启动【Green Hills MULTI】。
②、打开【New Project Wizard】。
③、选择当前项目使用的【Operating System】或对应运行环境。
④、进入处理器或目标板选择页面。
⑤、在【Processor Family】或【Target Board】中选择实际硬件对应的平台。
⑥、继续完成工程类型和程序布局设置。
⑦、保存生成的工程项目。
2、给已有工程检查处理器选项
①、在【Project Manager】中打开现有工程。
②、选中参与构建的【.gpj】项目。
③、打开【Build Options】。
④、找到处理器或目标架构相关设置。
⑤、选择与当前芯片对应的【Processor】。
⑥、保存配置后执行【Clean】。
⑦、重新运行【Build】。
3、让调试目标和编译配置对应
①、打开当前工程使用的【Target Connection Editor】。
②、选择实际连接的【Target Processor】。
③、核对目标板和处理器系列。
④、确认使用的【Green Hills Probe】或其他调试连接。
⑤、保存【Target Connection】。
⑥、重新启动【MULTI Debugger】。
⑦、连接目标并加载当前【Program】。
编译器里的Processor设置会影响允许生成的指令以及针对具体处理器的优化方式。以RH850为例,Green Hills对不同RH850型号提供相应的处理器支持,所以更换芯片型号后,旧工程里的处理器选项值得重新检查。
二、Green Hills目标处理器配置错误如何修改
处理器设置出错后,表现不一定相同。工程可能直接在编译阶段提示不支持某条指令,也可能顺利生成程序,但Debugger连接、下载或者板上运行出现异常。排查时可以先判断问题发生在构建端还是目标端。
1、编译时出现架构或指令相关错误
先看实际编译命令,确认问题文件到底继承了哪组处理器参数。
①、重新执行一次【Build】。
②、打开【Build Output】。
③、找到较早出现的处理器或指令相关错误。
④、查看对应源文件使用的编译命令。
⑤、返回该文件所属的【.gpj】工程。
⑥、打开【Build Options】并修改【Processor】设置。
⑦、执行【Clean】后重新构建。
2、改了处理器型号但构建结果没有变化
①、在【Project Manager】中找到报错源文件。
②、确认它实际属于哪个【Program】或子工程。
③、打开该层级的【Build Options】。
④、检查是否存在单文件独立选项。
⑤、删除旧的目标文件。
⑥、重新执行完整【Build】。
3、程序能够编译但无法正常连接目标板
①、打开【Target Connection Editor】。
②、查看当前【Target Processor】。
③、与开发板实际芯片型号进行核对。
④、检查调试接口使用的目标配置。
⑤、保存修改后的【Target Connection】。
⑥、重新启动【Debugger】。
⑦、再次执行目标连接。
编译配置和目标连接配置属于不同环节。只修改工程中的处理器选项,并不会自动说明调试连接已经指向相同目标,这也是换板后比较容易留下的旧配置。
4、更换同系列芯片后程序运行异常
同一处理器家族里的具体型号也可能存在指令集扩展、流水线或者片上资源差异。Green Hills的编译器会针对具体处理器模型处理可用指令和相应的优化策略,因此不能只看“属于同一个系列”就沿用原配置。
①、确认新芯片的完整【Processor Model】。
②、打开工程【Build Options】。
③、修改对应的【Processor】设置。
④、检查链接文件使用的内存区域。
⑤、核对启动代码和芯片型号。
⑥、更新【Target Connection】中的目标处理器。
⑦、重新构建并下载程序。
三、Green Hills目标处理器修改后怎么确认
处理器参数改完以后,不要只看编译窗口有没有变成成功状态。代码生成、链接布局和调试目标都和硬件有关,再做一次完整验证,能把遗留配置找出来。
1、重新生成程序并检查构建信息
①、对当前工程执行【Clean】。
②、重新运行完整【Build】。
③、在【Build Output】中查看实际编译命令。
④、确认当前使用的【Processor】参数。
⑤、检查链接过程是否出现新的警告。
⑥、加载新生成的【Program】进行调试。
2、保留已经验证过的处理器配置
①、保存当前【.gpj】工程文件。
②、记录使用的【Processor】型号。
③、保留对应的【Target Connection】配置。
④、保存当前链接文件和构建参数。
⑤、按硬件版本整理工程副本。
后面项目如果再次换板或者换处理器,可以直接拿这套已经跑通的配置作对照。这样更容易分辨问题究竟来自代码修改,还是工程仍然留着旧硬件的设置。
总结
Green Hills里的目标处理器配置会同时牵涉代码生成和板级调试,项目换芯片以后,只改一个地方往往不够。编译阶段先确认实际使用的Processor选项,到了目标板再核对Target Connection,遇到程序能编译却跑不起来的情况,还要把链接布局和启动配置一起看。把每个硬件版本对应的工程设置单独留存,后面再做平台调整时会省下不少排查时间。
