Green Hills链接映射文件怎么查看,以及在其内部遇到内存段溢出的问题要如何处理,这件事,先得把那份map文件当成一份最终的,关于内存的账本来对待,它并不是一份普通的记录,而是链接器把各个目标文件、库文件、段落、符号和地址整理在一块儿之后得到的结果,你的程序究竟能不能被放进Flash、RAM、共享内存或者那些专用的段里面,很多情况下,不用先去把板子跑起来,而是先拿眼睛看一看这份链接映射文件,就能把问题给找出来。
Green Hills MULTI工程怎么配置,Green Hills MULTI工程依赖路径失效怎么排查,这在嵌入式工程迁移、更换电脑、更换工具链版本,或接入CI构建的时候经常能碰到。MULTI工程并不只是用来保存源文件的列表,它还会把编译器、目标处理器、include路径、库路径、链接脚本、启动文件以及构建选项全都关联在一起。路径一旦被写成了个人电脑上的绝对目录,或者项目结构调整后没有同步更新,就容易出现头文件找不到、库文件找不到、链接失败,或者工程能打开却无法编译这一类的问题。
Green Hills的编译优化等级到底要怎么调,还有优化以后变量没有办法被观察到,这要怎么处理,这些问题一般是出现在从Debug版本往性能版本那边切过去的阶段。编译优化会去把函数给内联展开,把没有用到的代码给删掉,重新去分配寄存器,对指令的先后顺序也做一些调整,程序的运行结果虽然没有变,但这可不表示它生成出来的机器代码,跟每一行的源代码还能一一对应得上。Green Hills编译器里面,性能的级别和调试的级别都是可以选的,MULTI调试器则可以把源代码、内存、寄存器,还有函数调用栈放到一起,去查看程序的状态。