本帖最后由 coldsun1982 于 2015-8-20 19:42 编辑
小弟今日编写6701,其中CMD文件如下:
-c
-heap 0x1000
-stack 0x1000
MEMORY
{
VECS: o = 00000000h l = 00000200h
BOOTRAM: o = 00000200h l = 00000200h
PMEM: o = 00010000h l = 0000FC00h
DMEM: o = 80000000h l = 00010000h
CE1VECS: o = 01000000h l = 00000200h
CE1BOOT: o = 01000200h l = 00000200h
CE1PMEM: o = 01010000h l = 0000FC00h
}
SECTIONS
{
.vectors : load = CE1VECS, run = VECS
.boot : load = CE1BOOT, run = BOOTRAM
.text : load = CE1PMEM, run = PMEM
.cinit : load = CE1PMEM, run = PMEM
.const > DMEM
.far > DMEM
.stack > DMEM
.bss > DMEM
.data > DMEM
.switch > DMEM
.cio > DMEM
.canshu > DMEM
}
采用MAP0方式,编译通过,无错误,无警告,查看MAP文件
UTPUT FILE NAME: <./Debug/real.out>
ENTRY POINT SYMBOL: "_c_int00" address: 0001e4c0
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
VECS 00000000 00000200 00000200 00000000 RWIX
BOOTRAM 00000200 00000200 000000c0 00000140 RWIX
PMEM 00010000 0000fc00 0000ebcc 00001034 RWIX
CE1VECS 01000000 00000200 00000200 00000000 RWIX
CE1BOOT 01000200 00000200 000000c0 00000140 RWIX
CE1PMEM 01010000 0000fc00 0000ebcc 00001034 RWIX
DMEM 80000000 00010000 00006f6e 00009092 RWIX
.switch 0 80006d30 0000011c
在用HEX6X转换成机器代码时报错,
convert.bat文件如下:
real.out
-a
-memwidth 32
-romwidth 32
-order L
ROMS
{
ROM1: org = 0x01000000, length = 0x400,
files = {r1.txt}
ROM2: org = 0x01010000, length = 0xFC00,
files = {r2.txt}
}
小弟将switch映射到PMEM却没有问题,我就想问问这事是个什么个情况?switch未超界,却不让放在DMEM里,为什么?希望高手能给予解决,谢谢 |