16-bit PIC/dsPIC (請註明使用的元件標號):: dsPIC33EV256GM106 自動Reset 跟 .hex檔的編譯大小
版主 各位 大家好 ,
首先是我的mcu型號跟IDE平台
MCU : dsPIC33EV256GM106
IDE : X IDE v3.35 +
Compiler : XC16 v1.26
小弟還是個新手 , 想請教2個問題 如下 :
Q1. MCU會自動Reset
當程式執行時, 跑一段時間後會自動被reset, 約20~60秒 (每次都不一定)
我為了測試這個問題 , 我把大部分中斷(AD,CN,Timer)關掉, 動作流程 僅用UART RX中斷控制 LED亮燈.
作法上: 我先讓 LED1恆亮 (表示 程式有在跑),
透過UART控制 LED2亮燈(恆亮) , 如果程式有被Reset的話 LED2應該會滅掉, 不會自己亮起來.
實際執行時, LED2果然自動滅掉 , LED1有閃了一下 (應可推論程式被Reset吧?)
請問這是因為BOR的Reset嗎? 還是其他Reset可能被觸發到?
我的mcu每隻VDD電源腳都接 2.2u並0.1uF, AVDD則是10u並0.1uF, 5V電壓power電容是220u
-----------------------------------我是分隔線-------------------------------------
Q2. hex檔的編譯大小
因為X IDE 中可以看到程式編寫的記憶體用量 ,
Data used: 4982 bytes(約30%) , Program used: 23472 words(約13%)
但最後IDE compile出來的 hex檔 卻是131Kbytes.
若程式中, 多include1組矩陣(const int, 大小4096) , 光這個矩陣的增減 ,
hex檔就差了40Kbyte, 為什麼會有這個落差?
int佔2個byte, 大小4096共佔8192bytes
是沒最佳化呢? IDE設定有錯? 還是 我程式寫得太差了? (加一加有2000多行)
版主 各位 大家好 ,
首先是我的mcu型號跟IDE平台
MCU : dsPIC33EV256GM106
IDE : X IDE v3.35 +
Compiler : XC16 v1.26
小弟還是個新手 , 想請教2個問題 如下 :
Q1. MCU會自動Reset
當程式執行時, 跑一段時間後會自動被reset, 約20~60秒 (每次都不一定)
我為了測試這個問題 , 我把大部分中斷(AD,CN,Timer)關掉, 動作流程 僅用UART RX中斷控制 LED亮燈.
作法上: 我先讓 LED1恆亮 (表示 程式有在跑),
透過UART控制 LED2亮燈(恆亮) , 如果程式有被Reset的話 LED2應該會滅掉, 不會自己亮起來.
實際執行時, LED2果然自動滅掉 , LED1有閃了一下 (應可推論程式被Reset吧?)
請問這是因為BOR的Reset嗎? 還是其他Reset可能被觸發到?
我的mcu每隻VDD電源腳都接 2.2u並0.1uF, AVDD則是10u並0.1uF, 5V電壓power電容是220u
-----------------------------------我是分隔線-------------------------------------
Q2. hex檔的編譯大小
因為X IDE 中可以看到程式編寫的記憶體用量 ,
Data used: 4982 bytes(約30%) , Program used: 23472 words(約13%)
但最後IDE compile出來的 hex檔 卻是131Kbytes.
若程式中, 多include1組矩陣(const int, 大小4096) , 光這個矩陣的增減 ,
hex檔就差了40Kbyte, 為什麼會有這個落差?
int佔2個byte, 大小4096共佔8192bytes
是沒最佳化呢? IDE設定有錯? 還是 我程式寫得太差了? (加一加有2000多行)





