打印

求助 IAR軟體使用問題

[复制链接]
3829|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
co5jco5j|  楼主 | 2013-7-26 00:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 co5jco5j 于 2013-7-26 15:59 编辑

最近使用IAR軟體 開發TI MSP430 F5438 與CC2500傳輸模組

前面程式在寫沒什麼問題 但是到後面 卻是IAR出現一個讓我無解的問題

正常IAR 按[Download and Debug]按鈕 會進到debug模式 pc會跑到你的程式第一行 讓你可逐步執行與debug

但是我後面按了那按鈕 卻無法進入 debug模式 程式會直接run 卡在某地方 pc無法進到我程式碼部份的第1行

正常:(我後來才找到 那兩行high light 把那兩行註解 就正常可debug)



異常:(只要那2行 其中一行 解開註解 就會發生下圖狀況 PC無法進到我程式的第一行 一值卡在asm某一區段)




附上該函式的程式碼 就只是array放值 沒什麼特別動作



目前自己猜測:
1.因為我這程式有做很多array搬移動作 所以我有在猜想 是否需要做太多搬移 所以IAR自動預留太多空間 導致我空間不夠
2.用IAR觀看 Symbolic Memory 好像有固定空間放參數 我沒看到這個Receive_Data_buffer_DRP[] 這一個在我的memory有出現 是否我宣告太多array memory空間不夠
不知道這兩點猜測有沒有關係 小弟為這問題卡一陣子了

麻煩各位大大幫幫忙了  謝謝

另外想請問IAR編譯出來燒錄進去的執行檔 副檔名是.ewd .eww .ewp .dep? 哪一個才是


相关帖子

沙发
wowow| | 2013-7-26 08:28 | 只看该作者
链接后的目标程序在 Debug\Exe\*.d43,
  目录在project->options->General options->output里定义
  目标程序名在:project->options->linker->output里定义
内存不够的可能性比较大,它是在给初始化时给变量清0时出的错。在project->options->linker->list,可以选择输出一些文件查看各段所占用的内存。
如果内存不够,可以考虑修改链接配置文件,在project->options->linker->config可以看到。怎么改要看linker的文档。
如果还是不够,就要优化程序减小内存使用,或者换内存更大的芯片。

使用特权

评论回复
板凳
co5jco5j|  楼主 | 2013-7-26 15:58 | 只看该作者
最終我的問題也是出在全域array宣告太多了 導致程式初始化init動作太久 WDT一直復位 pc無法進到程式

最後加了
int __low_level_init(void)   
{   
  wdtctl = wdtpw+wdthold;
  return 1;   
}

這個函式 再IAR編譯時 即自己停止WDT不用呼叫這函式 無限復位問題就解決了

感謝WOWOW大大的幫忙 我的程式的確太肥了 需要幫他瘦身一下

使用特权

评论回复
地板
wowow| | 2013-7-26 16:57 | 只看该作者
好奇怪,变量初始化清0太多,乃至于看门狗都跑出来了?
如果是这样的话,可以在大的array定义前加上__no_init,例如:
__no_init int myarray[100];
这样启动时就不会对它清0了。然后有必要的话进入main()之后再自行初始化。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

16

帖子

0

粉丝