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


Browsing this Thread:   1 Anonymous Users






Re: pointer function的原型宣告
#2
高級會員
高級會員


查看用戶資訊
如果需要大量陣列時,
印象中WorkShop中的W401有介紹修改LKR檔來合併gpr...
不知道有沒有幫助...

不過沒想到C還能使用函式指標...太厲害了..
剛剛試了一下 hitech c...也真的能用...
早知道...之前案子幹嘛寫的那麼複雜...
偶爾來這晃晃果然是對的...
總是能學到一些高手的用法....感恩~~

發表於: 2008/7/29 16:43
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


pointer function的原型宣告
#1
資深會員
資深會員


查看用戶資訊
小弟最近想要將程式裡的一個大型switch case改為pointer function型式。

使用環境:
MPLAB 8.10
header、linker script:
PIC18F6722

修改後型式如下:
Evt1(){…}
Evt2(){…}
Evt3(){…}
Evt4(){…}
Evt5(){…}
………
void (* oper_evt[])() = {Evt1,Evt2,Evt3,Evt4,Evt5,…};

因為Evt的數量共有九十多個,編譯後看到錯誤訊息如下:

Error - section '.idata_avl_09o1.o' can not fit the section. Section '.idata_avl_09o1.o' length=0x00000120

看來是儲存空間不足所造成的問題,且測試了一下,若將void (* oper_evt[])()定義改為
= {Evt1,Evt2,Evt3,Evt4};,即少一個Evt5的話,原本的length=0x00000120會改為length=0x00000117。

感覺起來像是定義了一個過大的array而用完儲存空間,
但void (* oper_evt[])() = {Evt1,Evt2,Evt3,Evt4,Evt5};似乎不儲存於AcessBank或其它DATA BANK中。

可以請教一下,上面的錯誤訊息是什麼情況會發生嗎?

因為目前並沒有使用#pragma idata來宣告,是否必須將一個bank指定為idata來放?

但原本的記憶空間便不足了,似乎也無法找到一個能放九十多個event位址的空間,令人苦惱啊

發表於: 2008/7/29 15:49
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... ]

教育訓練中心

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