共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 跳转至页
回复
打赏帖 | |
---|---|
分享博世的两种不同的喷射系统模式被打赏5分 | |
汽车+开路实验与短路实验被打赏10分 | |
多点式电子控制汽油喷射系统知识分享被打赏10分 | |
分享机械控制式汽油喷射系统被打赏5分 | |
汽车显示屏——第2部分:TFTLCD、OLED和micro-LED显示屏电源技术被打赏50分 | |
汽车+汽车电路板的走线规则被打赏20分 | |
五一劳动节快乐被打赏5分 | |
【分享开发笔记,赚取电动螺丝刀】s32k146适配zephyr(六)使用Ozone调试镜像被打赏29分 | |
【分享开发笔记,赚取电动螺丝刀】s32k146适配zephyr(五)添加设备树节点被打赏33分 | |
【分享开发笔记,赚取电动螺丝刀】s32k146适配zephyr(四)使用I2C总线驱动RA8900CE芯片被打赏23分 |