共2条
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
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! | |
“我想要一部加热台”活动,不花钱赢取开发好工具!活动开始了哦 | |
【有奖活动】伙伴们:您的“需求”解决了吗? |
打赏帖 | |
---|---|
【换取手持数字示波器】N32G430点亮数码管与串口打印、ADC被打赏40分 | |
老胖子聊电路--分析一个反馈电路被打赏50分 | |
【换取手持数字示波器】+点亮WS2812RGB灯被打赏50分 | |
【换取手持数字示波器】+线性调整器理论知识分享被打赏40分 | |
放大↔震荡被打赏50分 | |
【换取手持数字示波器】RTduino驱动ssd1306+sht31温湿度计被打赏40分 | |
【换取手持数字示波器】称植国产开源TobudOS到雅特力AT32F425被打赏40分 | |
【分享评测,赢取加热台】+Telink-泰凌微电子B91点灯篇被打赏20分 | |
【换取手持数字示波器】+精英板驱动LCD屏被打赏50分 | |
【换取手持数字示波器】+DFR0216全彩灯带WS2812示例分享被打赏50分 |