• 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: 如何強制定義暫存器位址
#5
初級會員
初級會員


查看用戶資訊
感謝版主詳細解答

發表於: 2007/12/21 8:05
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 如何強制定義暫存器位址
#4
版主
版主


查看用戶資訊
有兩種方式可以做到:
1. 使用 int My_Variable __attribute__((address(0xnnnn)))
的方式將My_Variable 的變數定在 0xnnnn 的 Data RAM 位址。
2. 宣告依個節區名稱,節區的位址自己在 GLD 檔裡去決定其特定的位址。
以下是從C30使用手冊抄錄下來的說明。
Likewiseto locate variable Mabonga at address 0x1000 in data memory

int __attribute__ ((address(0x1000))) Mabonga 1;
Another way to locate code or data is by placing the function or variable into a user-defined section, and specifying the starting address of that section in a custom linker scriptThis is done as follows

Modify the code or data declaration in the C source to specify a user-defined section.
Add the user-defined section to a custom linker script file to specify the starting address of the section.
For 
exampleto locate the function PrintString at address 0x8000 in program memoryfirst declare the function as follows in the C source

int __attribute__((__section__(".myTextSection")))
PrintString(const char *s);
The section attribute specifies that the function should be placed in a section named .myTextSectionrather than the default .text sectionIt does not specify where the user-defined section is to be locatedThat must be done in a custom linker script, as followsUsing the device-specific linker script as a baseadd the following section definition

.
myTextSection 0x8000 :
  {
        *(.
myTextSection);
  } >
program
This specifies that the output file should contain a section named 
.myTextSection starting at location 0x8000 and containing all input sections named.myTextSectionSincein this examplethere is a single function PrintString in that sectionthen the function will be located at address 0x8000 in program memory

Similarlyto locate the variable Mabonga at address 0x1000 in data memoryfirst declare the variable as follows in the C source

int __attribute__((__section__(".myDataSection"))) Mabonga 1;
The section attribute specifies that the function should be placed in a section named .myDataSectionrather than the default .data sectionIt does not specify where the user-defined section is to be locatedAgainthat must be done in a custom linker script, as followsUsing the device-specific linker script as a baseadd the following section definition

.
myDataSection 0x1000 :
  {
        *(.
myDataSection);
  } >
data
This specifies that the output file should contain a section named
.myDataSection starting at location 0x1000 and containing all input sections named.myDataSectionSincein this examplethere is a single variable Mabonga in that sectionthen the variable will be located at address 0x1000 in data memory.


發表於: 2007/12/20 14:09
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 如何強制定義暫存器位址
#3
初級會員
初級會員


查看用戶資訊
如果是我們自己定義的暫存器要定義位址要怎做
如 int a 要定義在0x900h該怎定義

發表於: 2007/12/20 8:18
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 如何強制定義暫存器位址
#2
版主
版主


查看用戶資訊
dsPIC30F 的暫存器位址,Microchip 所提供的 GLD 的檔案裡都已經定義好其絕對位址了,所以使用時不需再去定義這些內部的暫存器位址。
開啟 GLD 檔在後面部份就可以看到這些定義。

發表於: 2007/12/19 11:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


如何強制定義暫存器位址
#1
初級會員
初級會員


查看用戶資訊
請教一下各位大大們在dsPIC30F4013的暫存器要怎樣定義他低位址使用C30

發表於: 2007/12/18 17:23
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... ]

教育訓練中心

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