• 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 size的幾個問題
#4
版主
版主


查看用戶資訊
有一點要澄清一下,C18 有兩種堆疊: 函數呼叫與中斷使用的是程式專用的堆疊共 31 層。而LKR 檔裡所指定的 Stack 是只傳遞參數時要使用的Stack RAM,這兩種堆疊式不同的。
程式是你寫的,呼叫到那一層的函數你怎會不知道。使用了多少層的堆疊有那麼重要嗎? 你用的是 PIC18 不是 PIC16F 堆疊要到爆掉除非是妳的程式有問題,PIC18 可以呼叫到 31 層。

發表於: 2009/4/23 10:34
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於stack size的幾個問題
#3
高級會員
高級會員


查看用戶資訊
版大你好、經過測試在讀取FSR1已可以了解、堆疊指標目前的位置、還有幾個小小的疑問。
一、如果沒想抓曾經使用的最大值、我是想說另外編寫一個變數做存取的比軟如果FSR1大於變數值就將FSR1存入變數來做測試、不知道是否可行。
二、如果上述的方法可行的話、在程式內是在中斷High level還是中斷low level內的堆疊會用到最多?還是那裡會是最多的地方呢?
三、還有一個堆疊存取說明的七層、因第八層是中斷在用的、如果我的堆疊區變大了是不是在堆疊未overflow都可以一直使用下去呢?
四、如果在主程式下已經在第三層了、到了中斷又call了三層的副程式、那就是六層了嗎?是不是這樣算丫?
例子:
void callFunction1(char *data)
{
callFuncton2(data);
}
void callFunction2(char *data1)
{
printf("data1");
}
void main(void)
{
char cc;
callFunction1(&cc);
}
上面的程式就算是三層了嗎?

發表於: 2009/4/23 9:52
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於stack size的幾個問題
#2
版主
版主


查看用戶資訊
堆疊指標是使用 FSR1 及 FSR2 。FSR1為堆疊指標,FSR2為框架指標。所以只要檢查 FSR1 就可以知道堆疊的目前位址。且指標可以看到 4K Byte 的大小,所以堆疊可以設多大呢?

發表於: 2009/4/22 16:44
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


關於stack size的幾個問題
#1
高級會員
高級會員


查看用戶資訊
我在下面網址看到的問與答
http://www.microchip.com.tw/modules/n ... t_id=11007#forumpost11007
內容是:
我使用18F4550 須將stack 闊展到384
將 .lkr 內容相關部份修改為如下
DATABANK NAME=pgr2 START=0x200 END=0x3F3

STACK SIZE=0x180 RAM=pgr2

可是執行時發現還是在 256 範圍內
超過的部份從 0x200 開始覆蓋\r

請問修改部份有錯嗎
STACK SIZE要如何才能超過 0x100
thanks!!


請問
一:在修改STACK SIZE後我要怎麼裀道他真正運行的範圍到底跑到多少呢?有沒辦法知道現在stack使用的數量是多少呢?
二:因為我在stack overflow reset enable是開啟的、在reset control register內有reset發生原因的旗標、請問在stack overflow reset有旗標可以查尋嗎?

發表於: 2009/4/22 14:04
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... ]

教育訓練中心

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