浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » EDA/PLD

使用C編譯器+ICD2調(diào)試程序需要注意的問(wèn)題

發(fā)布時(shí)間:2008/5/28 0:00:00 訪問(wèn)次數(shù):1392

  因icd2是在線仿真,所以會(huì)占用部分芯片資源。但編譯器的鏈接文件不夠聰明,不知道哪些資源會(huì)被icd2占用,有可能鏈接器分配的rom和ram空間恰巧是被icd2占用的,會(huì)引起用戶程序和icd2的調(diào)試程序發(fā)生沖突,通常表現(xiàn)為調(diào)試運(yùn)行時(shí)程序會(huì)莫名其妙的復(fù)位,從而浪費(fèi)大家的調(diào)試時(shí)間。那么如何讓鏈接器知道哪些空間不分配給用戶程序,而保留給icd2呢?

  下面是針對(duì)picc,picc18,mcc18,c30幾個(gè)pic開(kāi)發(fā)中常見(jiàn)c編譯器,基于mplabide集成開(kāi)發(fā)環(huán)境中給出的解決辦法:

1.hitechc+icd2.

  picc和picc18的設(shè)置一樣,通過(guò)設(shè)置編譯選項(xiàng)來(lái)實(shí)現(xiàn)。
  編譯程序前,在mplabide中的project菜單下,按如下操作project->buildoptions->project->piccglobal在piccglobal選項(xiàng)卡中選擇"compileforicd",確定后就可以編譯程序。

2.mcc18+icd2

  和picc不一樣,在mcc18下是選擇合適的linkerscripts文件來(lái)實(shí)現(xiàn),對(duì)于每個(gè)pic18fxxxx型號(hào),在c:\mcc18\lkr文件夾,都有兩個(gè)鏈接腳本文件,例如pic18f452,分別是18f452.lkr和18f452i.lkr.

  如果您要使用icd2調(diào)試,請(qǐng)選用帶i的鏈接文件編譯.

  如果打開(kāi)18f452i.lkr,會(huì)看到代碼區(qū)和數(shù)據(jù)區(qū)分別有:

  “codepagename=debugstart=0x7dc0end=0x7fffprotected”

  “databankname=dbgsprstart=0x5f4end=0x5ffprotected”

  這部分空間都是會(huì)被icd2占用的,所以“protected”,不分配給用戶程序。

3.c30+icd2

  c30是通過(guò)設(shè)置編譯選項(xiàng)實(shí)現(xiàn)。

  操作如下:mplabide->project->buildoptions->project->mplablink30,選中“l(fā)inkforicd2”確定即可。

  對(duì)于dspic和pic24系列來(lái)說(shuō)ram區(qū)0800h-0822h是為icd2保留的,如果編譯時(shí)沒(méi)有選擇“l(fā)inkforicd2”,全局變量很有可能分配到800h-822h間.這也是為什么可以在watch窗口看到全局變量的地址,但在值那欄卻顯示“reservedmemory”的原因之一。


  因icd2是在線仿真,所以會(huì)占用部分芯片資源。但編譯器的鏈接文件不夠聰明,不知道哪些資源會(huì)被icd2占用,有可能鏈接器分配的rom和ram空間恰巧是被icd2占用的,會(huì)引起用戶程序和icd2的調(diào)試程序發(fā)生沖突,通常表現(xiàn)為調(diào)試運(yùn)行時(shí)程序會(huì)莫名其妙的復(fù)位,從而浪費(fèi)大家的調(diào)試時(shí)間。那么如何讓鏈接器知道哪些空間不分配給用戶程序,而保留給icd2呢?

  下面是針對(duì)picc,picc18,mcc18,c30幾個(gè)pic開(kāi)發(fā)中常見(jiàn)c編譯器,基于mplabide集成開(kāi)發(fā)環(huán)境中給出的解決辦法:

1.hitechc+icd2.

  picc和picc18的設(shè)置一樣,通過(guò)設(shè)置編譯選項(xiàng)來(lái)實(shí)現(xiàn)。
  編譯程序前,在mplabide中的project菜單下,按如下操作project->buildoptions->project->piccglobal在piccglobal選項(xiàng)卡中選擇"compileforicd",確定后就可以編譯程序。

2.mcc18+icd2

  和picc不一樣,在mcc18下是選擇合適的linkerscripts文件來(lái)實(shí)現(xiàn),對(duì)于每個(gè)pic18fxxxx型號(hào),在c:\mcc18\lkr文件夾,都有兩個(gè)鏈接腳本文件,例如pic18f452,分別是18f452.lkr和18f452i.lkr.

  如果您要使用icd2調(diào)試,請(qǐng)選用帶i的鏈接文件編譯.

  如果打開(kāi)18f452i.lkr,會(huì)看到代碼區(qū)和數(shù)據(jù)區(qū)分別有:

  “codepagename=debugstart=0x7dc0end=0x7fffprotected”

  “databankname=dbgsprstart=0x5f4end=0x5ffprotected”

  這部分空間都是會(huì)被icd2占用的,所以“protected”,不分配給用戶程序。

3.c30+icd2

  c30是通過(guò)設(shè)置編譯選項(xiàng)實(shí)現(xiàn)。

  操作如下:mplabide->project->buildoptions->project->mplablink30,選中“l(fā)inkforicd2”確定即可。

  對(duì)于dspic和pic24系列來(lái)說(shuō)ram區(qū)0800h-0822h是為icd2保留的,如果編譯時(shí)沒(méi)有選擇“l(fā)inkforicd2”,全局變量很有可能分配到800h-822h間.這也是為什么可以在watch窗口看到全局變量的地址,但在值那欄卻顯示“reservedmemory”的原因之一。


相關(guān)IC型號(hào)

熱門點(diǎn)擊

 

推薦技術(shù)資料

聲道前級(jí)設(shè)計(jì)特點(diǎn)
    與通常的Hi-Fi前級(jí)不同,EP9307-CRZ這臺(tái)分... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!