• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: stack frame too large
#7
版主
版主


查看用戶資訊
buf[257] 是有點大,使用 Local Variable 去定義會佔正相當大的 Stack 而且陣列上會使用指標處理也會比較麻煩的。一般是不建議在 Local Variable 來開陣列的。

你可以用 union 的方式與其它的變數共用相同的 RAM 的方式來處理。只不過你的陣列超過 256Bytes 所以要參考 W401 第四章後段的方式來合併兩個 BANK 後,再用 #pragme udata 的方式需告陣列的起始位址。

發表於: 2008/12/3 15:32
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: stack frame too large
#6
中級會員
中級會員


查看用戶資訊
> 一般 Local Variable 是佔用 Stack RAM 所以是動態安排
> 的,這點是不一樣的。一般的變數是不會自找麻煩取使用堆
> 疊的 RAM。

>.<~
我不想自找麻煩, 讓我們跳回我原來的問題, 再修一下問法?
我有一個 buf[257] , 257 bytes, compile 不能過, 錯誤訊息為 stack frame too large, 我又不要靜態的 occupied 我重要的記憶體, 我要擺區域, 不要全域, 這時我該怎麼做? 謝謝~~

發表於: 2008/12/3 15:20
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: stack frame too large
#5
版主
版主


查看用戶資訊
1.#pragma udata 不能是區域變數? 一定要全域? 我讀完後就 release 不用了, 空出來的記憶體可以用作它用可以嗎?

一般 Local Variable 是佔用 Stack RAM 所以是動態安排的,這點是不一樣的。一般的變數是不會自找麻煩取使用堆疊的 RAM。

2.若我要用的 memory 是 0x101, 超過 256 又該如何用?

再把W401 第四張的後段看完就知道了如侯修改LKR檔來擴充 BANK。

發表於: 2008/12/3 13:09
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: stack frame too large
#4
中級會員
中級會員


查看用戶資訊
我看到了
原來在右邊的 "教材及講義" 下去找

我試後有二個問題
1.#pragma udata 不能是區域變數? 一定要全域? 我讀完後就 release 不用了, 空出來的記憶體可以用作它用可以嗎?

2.若我要用的 memory 是 0x101, 超過 256 又該如何用?

發表於: 2008/12/3 10:28
曾經 狂奔 舞蹈 貪婪的說話, 隨著冷的 濕的 心腐化

個人的休閒小站
歡迎來參觀
http://www.elevior.com
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: stack frame too large
#3
中級會員
中級會員


查看用戶資訊
你好, 可以麻煩你再多給我一些資訊嗎? 因為我是新手

RTC 教材 W401 <-- 這是什麼東東

最好是直接 code/config 貼上來啦

謝謝 ^^

發表於: 2008/12/3 9:36
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: stack frame too large
#2
版主
版主


查看用戶資訊
看一下 RTC 教材 W401 裡的第五章裡對 #pragma udata 的描述後就知道了。
因為 char buf[256] 須佔256Bytes RAM 所以要去宣告 buf[ ] 的起始位置從 0xn00 開始。

發表於: 2008/12/3 7:51
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


stack frame too large
#1
中級會員
中級會員


查看用戶資訊
我把我以前在silicon 的 code port 到 MC 來, 但 flash 讀一個 page 至少要 256 byte. 所以我遇到了這個錯誤訊息
請問要何解?
Error [1300] stack frame too large

unsigned char buf[256];

//
Flash_Init();
Flash_Read_Page(0,buf);


我用的是PIC18F6XJ5X, 1 個 bank 是 0x100 bytes

發表於: 2008/12/2 18:53
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------