初級會員
Joined
: 2004/7/2 16:44 最後登入時間
: 2008/8/22 13:18
Group:
註冊會員
Level : 4 HP : 0 / 85 MP : 10 / 4940 EXP : 40
|
//=============================== //第一種資料查表宣告 (使用asm) //=============================== .section .testdata, psv, align(16) testTable: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
//=============================== //第二種資料查表宣告 (使用C) //=============================== int testtable[] __attribute__((far,section(".const,r")))= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
//=============================== //第三種資料查表宣告 (使用C) //=============================== int sinetable[] __attribute__((far,section("psv")))= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
請問當三中宣告完成後, 各別在MAP檔中觀看其分配的空間, 為什麼
1.第一種是分配在Program Memory中,且要用view底下的Program Memory才能觀看分配情形, 不是應該分配對應到data memory中嗎? 而且在watch視窗下應該要能看到testTable的陣列結構,卻看不到?
2.第二種是分配在Program Memory中,可以正常在Watch視窗去看它的陣列結構,這個是合理的
3.第三種是分配在data Memory中,且建立一個psv空間,也可以用Watch視窗去看它的陣列結構
理論上第一種宣告不是應該和第三種宣告一樣,要被分配到data memory的psv嗎?
發表於: 2006/1/4 16:35
|