共4条
1/1 1 跳转至页
s3c44b0x 高手请进:有关s3c44b0x启动代码的问题(1)
问
这两天看s3c44b0x的启动代码,感觉很繁,有些地方老看不懂.哪位高手指点为一下,谢谢。
代码如下:
GET ..\inc\option.a
GET ..\inc\memcfg.a
;Interrupt Control
INTPND EQU 0x01e00004
INTMOD EQU 0x01e00008
INTMSK EQU 0x01e0000c
I_ISPR EQU 0x01e00020
I_CMST EQU 0x01e0001c
;Watchdog timer
WTCON EQU 0x01d30000
;Clock Controller
PLLCON EQU 0x01d80000
CLKCON EQU 0x01d80004
LOCKTIME EQU 0x01d8000c
;Memory Controller
REFRESH EQU 0x01c80024
;Pre-defined constants
USERMODE EQU 0x10
FIQMODE EQU 0x11
IRQMODE EQU 0x12
SVCMODE EQU 0x13
ABORTMODE EQU 0x17
UNDEFMODE EQU 0x1b
MODEMASK EQU 0x1f
NOINT EQU 0xc0
;check if tasm.exe is used.//tasm.exe是什么程序,有什么作用???
GBLL THUMBCODE
[ {CONFIG} = 16//CONFIG是在哪里定义了???这条语句的作用是什么,][]的用法怎样???
THUMBCODE SETL {TRUE}
CODE32
| //这个符号有什么用???
THUMBCODE SETL {FALSE}
]
[ THUMBCODE //这句话有什么作用
CODE32 ;for start-up code for Thumb mode//还有这句话???
]
谢了先! 答 1: 帮帮忙啊,各位大侠 答 2: 不懂猜是怎么配置是ARM32位指令还是thumb 16位指令的 答 3: 恳请大侠指点,急啊! 答 4: 找一本书看看吧,不要光等别人给你回答 答 5: 我知道一些!1\tasm.exe是什么程序,有什么作用???
就是THUMB汇编编译文件
2\//CONFIG是在哪里定义了???
CONFIG为汇编器的内置变量
3\,[]的用法怎样???
"["表示"if","|"表示"else","]"表示"endif"
下面的有些不懂:
[ THUMBCODE //这句话有什么作用
CODE32 ;for start-up code for Thumb mode//还有这句话???为什么是THUMB MODE ,不是CODE32吗?应该是ARM MODE 才是啊?
]
不知对不对,有错误的地方请高手指教! 答 6: THUMBCODE是变量名THUMBCODE是变量名
GBLL THUMBCODE ;定义THUMBCODE这个变量 GBLL声明一个全局逻辑变量并初始化为{FALSE}
THUMBCODE SETL Logic Statement;设置THUMBCODE的值
[ THUMBCODE
CODE32
]
就是if(THUMBCODE={TRUE}) CODE32;即THUMBCODE={TRUE}则指明以后为ARM代码.
你后面的代码应该是中断代码吧?进入中断后ARM只在ARM状态下执行,所以要CODE32,当你看到跳转到主函数执行的代码时,你会再次看到,根据THUMBCODE变量值对代码类型进行重新定义,比是THUMBCODE={TRUE}),则使用CODE16伪指令,否则使用CODE32指令.
继续往下看!
不明白可以看ARM手册,或者看<ARM体系结构与编程>
答 7: 楼上那位老兄说的基本没有错 答 8: 谢谢各位,受益匪浅
谢谢楼上的几位兄弟,尤其是kingpoo和 weiganglnu
代码如下:
GET ..\inc\option.a
GET ..\inc\memcfg.a
;Interrupt Control
INTPND EQU 0x01e00004
INTMOD EQU 0x01e00008
INTMSK EQU 0x01e0000c
I_ISPR EQU 0x01e00020
I_CMST EQU 0x01e0001c
;Watchdog timer
WTCON EQU 0x01d30000
;Clock Controller
PLLCON EQU 0x01d80000
CLKCON EQU 0x01d80004
LOCKTIME EQU 0x01d8000c
;Memory Controller
REFRESH EQU 0x01c80024
;Pre-defined constants
USERMODE EQU 0x10
FIQMODE EQU 0x11
IRQMODE EQU 0x12
SVCMODE EQU 0x13
ABORTMODE EQU 0x17
UNDEFMODE EQU 0x1b
MODEMASK EQU 0x1f
NOINT EQU 0xc0
;check if tasm.exe is used.//tasm.exe是什么程序,有什么作用???
GBLL THUMBCODE
[ {CONFIG} = 16//CONFIG是在哪里定义了???这条语句的作用是什么,][]的用法怎样???
THUMBCODE SETL {TRUE}
CODE32
| //这个符号有什么用???
THUMBCODE SETL {FALSE}
]
[ THUMBCODE //这句话有什么作用
CODE32 ;for start-up code for Thumb mode//还有这句话???
]
谢了先! 答 1: 帮帮忙啊,各位大侠 答 2: 不懂猜是怎么配置是ARM32位指令还是thumb 16位指令的 答 3: 恳请大侠指点,急啊! 答 4: 找一本书看看吧,不要光等别人给你回答 答 5: 我知道一些!1\tasm.exe是什么程序,有什么作用???
就是THUMB汇编编译文件
2\//CONFIG是在哪里定义了???
CONFIG为汇编器的内置变量
3\,[]的用法怎样???
"["表示"if","|"表示"else","]"表示"endif"
下面的有些不懂:
[ THUMBCODE //这句话有什么作用
CODE32 ;for start-up code for Thumb mode//还有这句话???为什么是THUMB MODE ,不是CODE32吗?应该是ARM MODE 才是啊?
]
不知对不对,有错误的地方请高手指教! 答 6: THUMBCODE是变量名THUMBCODE是变量名
GBLL THUMBCODE ;定义THUMBCODE这个变量 GBLL声明一个全局逻辑变量并初始化为{FALSE}
THUMBCODE SETL Logic Statement;设置THUMBCODE的值
[ THUMBCODE
CODE32
]
就是if(THUMBCODE={TRUE}) CODE32;即THUMBCODE={TRUE}则指明以后为ARM代码.
你后面的代码应该是中断代码吧?进入中断后ARM只在ARM状态下执行,所以要CODE32,当你看到跳转到主函数执行的代码时,你会再次看到,根据THUMBCODE变量值对代码类型进行重新定义,比是THUMBCODE={TRUE}),则使用CODE16伪指令,否则使用CODE32指令.
继续往下看!
不明白可以看ARM手册,或者看<ARM体系结构与编程>
答 7: 楼上那位老兄说的基本没有错 答 8: 谢谢各位,受益匪浅
谢谢楼上的几位兄弟,尤其是kingpoo和 weiganglnu
4楼
谢谢各位解答的大哥!小弟又学到了一些.本人是菜鸟一个,现在要搞关于s3c44box的BSP程序包的论文.头大啊
共4条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 | |
【分享评测,赢取加热台】使用8051单片机驱动WS2812被打赏40分 |