汽车电子expert成长之路

本博客发布的个人原创精品----嵌入式系统技术文章,欢迎大家参考学习,并转发分享!

S32DS使用Tips--S32DS for Power V1.2 链接文件和启动过程详解

0
阅读(3785)

作者按:本文对S32DS for Power V1.2 应用工程的链接文件和启动过程进行了详细介绍,同时也介绍了如何通过应用工程的链接文件(57xx_flash.ld)和启动文件(startup.s)实现用户自定义data和code段以及重定向代码/函数的自动拷贝实现方法和步骤。最后还分享了本文使用的基于MPC5775K单核CPU的S32DS for Power V1.2应用工程,供大家参考学习!


内容提要

 

引言

1.     存储器分区详解(V1.0的mem.ld文件内容):

2.     编译结果链接放置段详解(V1.0的sections.ld文件内容):

3.     启动文件Start.s修改

4.     C文件测试数据和代码

总结


引言


S32DS for PowerIDE是NXP推出的Qorivva MPC57xx系列MCU的软件集成开发环境,其至2016年发布以来,历经3个版本的更新,其基于eclipse的友好界面,提供了强大的代码编辑功能和丰富的调试特性,受到了广大工程师的喜爱。但是,作为一款新的IDE,其基于GNU的工具链开发,对于很多之前使用CodeWarrior IDE的工程师来说,其略显陌生。尤其是那些需要开发BootLoader的工程师来说,了解其链接文件和启动过程,尤为关键。本文就是针对此种需求,以S32DS for Power V1.2为例,对其链接文件和MPC57xx系列MCU的启动过程给大家做一个详细的介绍。

 

在S32DS for Power V1.0默认创建的工程中有如下3个链接脚本文件作为工程链接器(Linker)控制应用程序的编译结果链接:

Ø "${ProjDirPath}/Project_Settings/Linker_Files/mem.ld"à存储器分区

Ø "${ProjDirPath}/Project_Settings/Linker_Files/sections.ld"à编译结果链接放置

Ø "${ProjDirPath}/Project_Settings/Linker_Files/libs.ld"à用户库链接控制脚本,本例中未使用,为空白


完整的链接文件(Linker file)包含memory{}和section{}两部分。

其中memory{}用于存储器进行分区,而section{}则对编译结果按段(section)进行放置。

 

Tips: 在在S32DS for Power V1.0默认创建的工程中则默认添加了如下3个链接文件:

Ø "${ProjDirPath}/Project_Settings/Linker_Files/57xx_flash.ld"à编译目标为Debug或者Release时使用的链接文件,其将工程代码编译到MCU的Flash空间,掉电后程序不丢失

Ø "${ProjDirPath}/Project_Settings/Linker_Files/57xx_ram.ld"à编译目标为Debug_RAM时使用的链接文件,其将工程代码编译到MCU的RAM空间,掉电后程序丢失

Ø "${ProjDirPath}/Project_Settings/Linker_Files/libs.ld"à用户库链接控制脚本,本例中未使用,为空白


其中,57xx_flash.ld/57xx_ram.ld包含了S32DS for Power V1.0中的mem.ld和sections.ld两部分。本文以MPC5775K的单核CPU新建应用工程编译目标为Debug的链接文件57xx_flash.ld进行介绍。


         由于本文写作是使用copy工程链接文件和启动文件,添加注释的方式进行详解,而微信手机上,限于屏幕宽度会做自动调整,从而会严重影响阅读。因为我将剩下的详解部分做成了PDF文档,并截图插入,这样方便大家阅读:

2-1.jpg


总结


      本文所讲内容,是开发BootLoader必须掌握的知识,希望大家能够熟练掌握。为了帮助大家学习和理解本文知识点,我将本例使用的S32DS for Power v1.2应用工程和之前S32DS for Power v1.0的应用工程上传分享到如下百度云盘,供大家参考:


链接:http://pan.baidu.com/s/1nv86F2L

密码:t0u2


S32DS for Power v1.2工: 

MPC5775K_single_core_test_Z4_1_data_specify_address_V1.2_Z4.zip

S32DS for Power v1.0工程

MPC5775K_single_core_test_Z4_1.zip