当前位置:首页 > 工业控制 > 电子设计自动化
[导读]因ICD2是在线仿真,所以会占用部分芯片资源。但编译器的链接文件不够聪明,不知道哪些资源会被ICD2占用,有可能链接器分配的ROM和RAM空间恰巧是被ICD2占用的,会引起用户程序和ICD2的调试程序发生冲突,通常表现为调

因ICD2是在线仿真,所以会占用部分芯片资源。但编译器的链接文件不够聪明,不知道哪些资源会被ICD2占用,有可能链接器分配的ROM和RAM空间恰巧是被ICD2占用的,会引起用户程序和ICD2的调试程序发生冲突,通常表现为调试运行时程序会莫名其妙的复位,从而浪费大家的调试时间。那么如何让链接器知道哪些空间不分配给用户程序,而保留给ICD2呢?

下面是针对PICC,PICC18,MCC18,C30几个PIC开发中常见C编译器,基于MPLABIDE集成开发环境中给出的解决办法:

1.HITECHC+ICD2.

PICC和PICC18的设置一样,通过设置编译选项来实现。
编译程序前,在MPLABIDE中的PROJECT菜单下,按如下操作PROJECT->BUILDOPTIONS->PROJECT->PICCGlobal在PICCGlobal选项卡中选择"compileforICD",确定后就可以编译程序。

2.MCC18+ICD2

和PICC不一样,在MCC18下是选择合适的linkerscripts文件来实现,对于每个PIC18Fxxxx型号,在C:mcc18lkr文件夹,都有两个链接脚本文件,例如PIC18F452,分别是18f452.lkr和18f452i.lkr.

如果您要使用ICD2调试,请选用带i的链接文件编译.

如果打开18f452i.lkr,会看到代码区和数据区分别有:

“CODEPAGENAME=debugSTART=0x7DC0END=0x7FFFPROTECTED”

“DATABANKNAME=dbgsprSTART=0x5F4END=0x5FFPROTECTED”

这部分空间都是会被ICD2占用的,所以“PROTECTED”,不分配给用户程序。

3.C30+ICD2

C30是通过设置编译选项实现。

操作如下:MPLABIDE->PROJECT->BUILDOPTIONS->PROJECT->MPLABLINK30,选中“LinkforICD2”确定即可。

对于dsPIC和PIC24系列来说RAM区0800h-0822h是为ICD2保留的,如果编译时没有选择“linkforICD2”,全局变量很有可能分配到800h-822h间.这也是为什么可以在watch窗口看到全局变量的地址,但在值那栏却显示“reservedmemory”的原因之一。


来源:ks990次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在这篇文章中,小编将对PLC的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: PLC 模块化 程序

在C语言编程中,结构体内存对齐是一个容易被忽视却影响深远的关键问题。它不仅关乎程序性能,更直接影响到内存占用效率,尤其在嵌入式系统等资源受限环境中显得尤为重要。本文将深入探讨结构体内存对齐的原理,并分享手动调整与编译器优...

关键字: C语言 内存对齐 编译器

编译器不仅是连接硬件与软件的桥梁,还直接影响MCU的性能优化与功能安全。面对汽车行业对高可靠性、低功耗和高算力的需求,编译器需在确保ASIL-D等严格标准的同时,最大化发挥RISC-V芯片的潜力。

关键字: 车规MCU RISC-V 编译器 HighTec

国内电子信息产业内的厂商正在全球嵌入式系统的发展浪潮中扮演着越来越重要的角色,但随之而来的是国内嵌入式系统和相关芯片企业在出海时也面临越来越多的合规要求,尤其是在保障用户、设备和周边人与物安全的功能安全领域内的合规要求。...

关键字: 嵌入式系统 智能网联 编译器

【2025年4月11日, 德国慕尼黑讯】全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)推出用于AURIX™、TRAVEO™和PSOC™的可扩展软件包产品组合...

关键字: PSOC 物联网 编译器

瑞典乌普萨拉,2025年3月11日 — 全球领先的嵌入式系统开发软件解决方案供应商IAR在德国纽伦堡举办的embedded world 2025展会上重磅发布全新云端平台。该平台为嵌入式软件开发人员提供前所未有的自由度与...

关键字: 编译器 嵌入式 RISC-V

该统一解决方案为Microchip编译器产品线提供灵活且经济高效的许可选项

关键字: 编译器 嵌入式

当安全标准相互契合:意法半导体 (ST) Stellar MCU取得了风险管理安全标准等级最高的ISO 26262 ASIL D 级认证,现在更有达到同等安全级别的 HighTec Rust 编译器的加持

关键字: 微控制器 编译器

对程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一。一般是优化了代码的尺寸,就会带来执行时间的增加;如果优化了程序的执行速度,通常会带来代码增加的副作用。很难鱼与熊掌兼得,只能在...

关键字: 单片机 程序

在STM32的开发过程中,开发者可能会遇到各种编译错误,其中“Program file does not exist”是一个较为常见且可能由多种原因引起的错误。这个错误通常意味着编译器在预期的路径下没有找到可执行文件(如...

关键字: STM32 编译器
关闭