用IAR仿真msp430f5438a出现问题,急待解决

用IAR仿真msp430f5438a出现问题,急待解决,第1张

我没遇见这个问题我感觉以下两个办法可以帮你解决:

一:可能原因同Q6

Q6:当在RAM 中对其中一变量开辟的尺寸是512 字节时,程序总占用35KRAM 空间,可以正常烧到芯片中,

也可以正常运行;

当对同一变量开辟的尺寸是1024 字节,而其它均未改变时,程序总占用40K左右RAM 空间,可以正常烧到芯

片中,却无法运行!!!!

A6:方法一将一些变量定义成no init 类型

方法二修改IAR 的cstartups43 程序,具体方法如下:(iar310a为例)

1 将cstartups43 程序加载到用户自己的项目中,cstartups43在iar310a的路径如下$TOOLKIT_DIR$\src\LIB\

2 修改cstartups43 中的__program_start子程序,加入关闭看门狗的命令MOV#0x5A80,&0x0120

3 在Project->Options->Linker->Config 页中选择Override default programe ,并将Entry lib 设置成

__program_start

二:堆栈设计太小,修改堆栈

改堆栈是在你工程的Options里面。首先在Workspace窗口右键单击你的工程,然后选择第一项"Options",或者选在上面菜单中选择Project->Options也可以进入这个选项。在Options里面第一个General Options中,有一堆选项卡,第五个选项卡(就是Library Options再向右一个)就是Stack/Heap,用来调整堆和栈的大小的。调的时候先在Override Default前面打钩。如果你用的是地址线没有扩展的MCU版本,则只有Stack Size 和Heap Size 两个选项可以选择。如果你是用的是较新的F5系列扩展地址线版本MCU,则还可以设置Data20 Heap Size具体怎么设要根据你的应用需求。如果你需要自己申请用来存放Data20类型的数据,就需要把Data20 Heap Size设大一点。如果存放普通的数据那么只需要更改Stack Size和Heap Size。

Stack和Heap的区别有问题吗?如果不清楚的话上百度输入“堆和栈的区别”自己看吧。根据你的应用到底是堆空间要求多一些,还是栈空间要求多一些,给Stack Size和Heap Size分配不同大小的Size。

最后你可以参加一下文档:MSP430常见问题汇总(利尔达)pdf

请教IAR debug 与 release模式的作用

最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release

下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导致后面处理异常。网上查找了些资料,在这

罗列汇总下,做为备忘~

一、Debug 和 Release 的区别

Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。

你的XDATA设置为:1baa-1eff,一共只有356个字节,但是你的程序有0xC02大小,放不进去,发声溢出,尝试修改一下:在你的工程文件上点右键选options--General options--Stack/Heap--XDATA的值,看一下这个值是不是填的1eff,把它加大试试。

1、Project -> Options ->C++ Compiler -> Preprcessor选项卡下 defined symbols加入: VECT_TAB_SRAM ;

2、Project -> Options -> Linker, 修改链接文件为RAM方式,比如修改为 $PROJ_DIR$\stm32f2xx_sramicf;

3、Project -> Options -> Debugger -> download 选项卡,把use falsh loader前面的勾去掉;

4、把板子上的BOOT0和BOOT1跳线到RAM启动方式(全高),网上有人说这个不影响调试,根据在GCC下的经验,这个貌似影响会SP指针,有的启动文件开始没有对SP指针初始化,而是自动从0地址读取,为了保险起见还是跳线到RAM方式。

以上就是关于用IAR仿真msp430f5438a出现问题,急待解决全部的内容,包括:用IAR仿真msp430f5438a出现问题,急待解决、请教IAR下Release的脚本文件设置、IAR编译cc2530, 提示Failed to fit all segments into specified ranges。怎么回事,请各位帮忙啊。。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9750240.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存