基于Tasking的连接器文件配置技巧

程序代码编译后生成可重定位文件,经连接器链接后生成最后可刷如控制器及的Hex或Mot文件。链接过程是嵌入式软件开发中的重要环节,本文件简单记述一些Tasking软件使用过程中关于与链接相关的小技巧,仅用于技术交流,如有错误,敬请指正。
英飞凌逻辑地址空间有linear、abs24 、abs18 、csa 4种类型。 其中 abs24 、abs18 、csa 4均包含在linear 之中。 linear 空间是一个32位空间,理论大小为4G.
abs18空间是一个18位地址空间,理论大小为2M, 在英飞凌芯片中 实际可用为16K,位于每个上segment 的首个16K地址上,如0x80000000 – 0x80004000。
abs24空间是一个24位空间,理论大小是16M, 实际可用为2M。csa空间是英飞凌上下文(包含高级上下文、低级上下文)保存区域空间,用以存取核心寄存器的值,用以恢复核心原有行为。 注: 不包含核心地址寄存器 a0/a1a8/a9
SectionType and Name Prefix
标准C语言的 section 前缀主要包括: .bss/.data/.rodata/.text。
英飞凌芯片对应的将数据划分为 near类型/far类型。对应的前缀为:
1)带 “z”的near类型数据:.zbss/.zdata/.zrodata
2)标准的 far 类型数据: .bss/.data/.rodata
如果想要将Section分配到指定的地址Memory, 那么就需要对Section的类型
及其后缀名比较了解,否则极易出现配置不成功的情况。

对于Near类型的数据不便于存储定位,可通过属性设置使其军放置于far区域。
在这里图片描述
代码内声明为Static类型的变量,其运行空间在RAM区域加载空间在ROM区域,编译后属性为.data/.bss,其运行空间可通过以下方式设定去运行地址与加载地址。
运行空间设定:

 group (ordered, contiguous, align = 4, attributes=rw, run_addr = mem:dsram1)
         {
            select "(.data|.data*)";
            select "(.bss|.bss*)";
        }

加载空间设定:

       group (ordered, load_addr=0x800A2000)// (ordered, run_addr=mem:pfls0)//(ordered, run_addr=0x80021000)
        {
            select ".data*";
        }

Bus访问故障陷阱
Tricore系列芯片访问未初始化的存储区域时会进入Bus访问故障陷阱。
有时候经过仔细排查发现程序代码部分未有任何访问未初始化的地址,苦思冥想找不出问题原因。这时候可以去排查一下工程是否有做过片上仿真调试,片上防止调试时Memory观测访问的地址如果程序编译时未初始化,也会产生bus访问故障陷阱。此情况多出现在工程前期调试时观测固定地址的值,后期该地址已经不再被使用,但是调试工程未将该地址观测删除。

  • 5
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于tasking工程的代码集成是一种软件开发方法,旨在将大型软件项目分割成小任务,并同时进行各个任务的开发和集成。该方法的主要优势在于能够提高开发效率、减少开发时间,并减轻开发过程中的风险。 首先,基于tasking工程的代码集成可以将整个软件项目分割成多个小任务,每个任务由一个或多个开发人员负责。每个任务可以按照其相关特性、模块或者功能进行划分,这样可以确保开发人员将精力集中在一个小而具体的任务上,提高开发效率。 其次,各个任务的开发可以并行进行,各个开发人员之间可以独立工作,相互之间的进度没有依赖关系,从而减少了开发项目的整体开发时间。同时,每个任务在完成之后都可以进行单元测试和代码评审,确保代码的质量和可靠性。 在每个任务开发完成之后,任务的集成可以通过版本控制系统进行协调管理。各个任务的代码可以进行集中管理,并进行整体的测试和验证。这样可以发现和解决不同任务之间的兼容性问题和依赖关系,确保整个软件项目的稳定和一致性。 基于tasking工程的代码集成还可以减轻软件开发过程中的风险。由于开发人员的工作有明确的边界,并且每个任务都可以进行独立的测试,所以问题和错误可以很容易地被定位和解决。这有助于降低整个项目的风险,提高软件质量。 综上所述,基于tasking工程的代码集成方法可以提高软件开发的效率,减少开发时间,并减轻开发过程中的风险。它是一种灵活而高效的软件开发方法,适用于各种规模和复杂度的项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值