本文是个人随笔,可能有点前言不搭后语。hehe...
说的也不定对,望注意~~~
好吧,
想搞个DIY操作系统,懂点汇编是必须滴~e。。。我个人呢,之前在YQ也算是学习过一点汇编吧。
当时是半懂不懂的。懵懵懂懂的记得mov,bic这些指令符号。
但是更复杂的就不懂了。
比如说啊,
bl和b的区别啊。
bne和blne啊(也是刚刚才会用)。
重复使用bl对lr影响啊
。。。
,对于上面的问题我现在还是都不太懂。
懂得可以解答一下,万谢哈~
对于下文呢,我就写写汇编对c语言的翻译吧~
嗯。回归正题。
我们单片机 实现 按键 控制 LED这个功能的具体步骤是啥呢?
下面说明可以对照代码来看~
1。上电。。。程序从flash读到ram中,并从Reset_Handler开始运行。
2。配置单片机时钟Stm32_Clock_Init。(初次尝试可省略)
3。初始化LED和KEY控制口IO寄存器
4。while循环读取按键IO状态
详解-->
1。1关于一堆乱七八糟定义
[mw_shl_code=c,true]
;--------------------------Start--------------------------
;------------------声明代码运行空间-----------------------
;------------------声明代码运行地址-----------------------
;------------------声明本文件代码类型---------------------
AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp
;数据段
AREA RESET, DATA, READONLY
__Vectors DCD __initial_sp ;TOP of stack
DCD Reset_Handler ;Reset Handler
;代码段
AREA |.text|, CODE, READONLY
THUMB
REQUIRE8
PRESERVE8
ENTRY
;--------------------------end--------------------------[/mw_shl_code]
名词解析:
AREA STACK, NOINIT, READWRITE, ALIGN=3
AREA中文翻译是范围,顾名思义,是定义下面跟着的那堆东西存放的地址
段是独立的、指定的、不可见的代码或数据块,它们由链接器处理。格式如下: |