- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ADS相关 ADS程序 ADS程序 ADS 1.2 ADS是ARM公司开发的ARM处理器专用IDE软件。 Code Warrior编辑器 AXD调试器 ADS相关 Semihosting Semihosting 在ADS C库文件中,在主机调试环境中支持一些ANSI C的功能函数,称为semihosting. Semihosting 由一些预定义的 software interrupt (SWI) 操作定义。 Semihosting调试技术 Semihosting的实现原理 Semihosting 程序中止 程序中止输出 Default ADS Initialization __main 实现内存映射(run-time image memory map) __rt_entry 实现 C 库文件的载入 如果源程序中有main()函数,则将使链接器和 __main 、 __rt_entry定义的初始化代码相连接;如果没有则不进行该操作,一些标准C库函数将不被支持。 Retargeting the C Library 在实际硬件上工作时,应关闭semihosting 需由用户定义相关输入输出函数,这一过程称为Retarget Avoiding C Library Semihosting 在实际的应用程序中,不能支持semihosting SWI操作。因此 必须确保没有 C library semihosting functions连接到应用程序。 为确保不使用semihosting 必须做以下处理: 在C语言源程序中加入 #pragma import(__use_no_semihosting_swi) 在汇编语言源程序中加入 IMPORT __use_no_semihosting_swi 这样在错误的调用semihosting 时,会产生以下提示: Error: Symbol __semihosting_swi_guard multiply defined ADS相关 程序 定位 Default memory map Linker placement rules 映象文件缺省生成方式 首先按段属性依次组织: RO 、RW 、ZI 在每个属性区域中代码在数据前。 输入区(input sections)依照AREA定义的段名依次存放。 不同源文件中的相同段名合并,合并时按文件名次序存放。 提示:不要依赖缺省生成方式 Scatterloading Scatterloading 用一个叫scatter file的文本文件来定义装载时 (load-time)和运行时(run-time)代码和数据在内存中的位置。 scatter file用内存区域( memory regions )来描述代码和数据在装载和运行时所处内存的位置。内存区分为两类: 载入区( Load Regions),是指在复位或载入时的代码和数据所在的区域。 运行区( Execution Regions), 每个载入区在应用程序启动时,将创建一个或多个运行区。 映象所有的代码和数据都有一个与之对应的唯一的载入式和运行区。 Scatter File Syntax 区域包含的内容由区域的类型决定: Load regions必须包含至少一个 execution region,实际上通常每个load region会包含多个运行区。 Execution regions必须包含至少一个代码区或数据区。通常用源文件或库文件生成的目标文件来指定,也可用wildcard (*) syntax 来引用未在scatter file文件其它地方出现的,符合指定属性的所有的区。 Simnple scatterloading example LOAD_ROM 0x0000 0x4000 { EXE_ROM 0x0000 0x4000 ; Root region { * (+RO) ; All code and constant data } RAM 0x10000 0x8000 { * (+RW, +ZI) ; All non-constant data } } Placing Objects in a Scatter File LOAD_ROM 0x0000 0x4000 { EXEC_ROM 0x0000 0x4000 { vectors.o (Vect, +FIRST) * (+RO) } ; more exec regions… } Retargeting __user_initial_stackheap( ) 使用scatterloading映象时,必须重新定义 __user_initial_stackheap函数 __user_initial_stackheap 可用C语言或汇
您可能关注的文档
最近下载
- 新编大学语文(周玲玉)课件—第3章:小说.pptx VIP
- 高中生物实验研究型课程校本教材(上).pdf VIP
- 铁路工务线路设备检查项目与常见病害解析.pdf VIP
- 中药二中成药“快速记忆”总结.docx VIP
- 2025年生物医药临床试验风险识别与质量控制优化策略研究报告.docx
- 实施指南《GB_T27785-2011卫生杀虫器械实验室效果测定及评价电子灭蚊蝇器》实施指南.docx VIP
- 新解读《GB_T 27785 - 2011卫生杀虫器械实验室效果测定及评价 电子灭蚊蝇器》.docx VIP
- 离任审计流程详解与核心工作底稿编制指南.docx VIP
- 美术高中绘画教材分析.doc VIP
- 遵义凤冈县辅警招聘考试真题2023.pdf VIP
文档评论(0)