ARM④——裸机编程
ARM④——裸机编程
一、裸机编程步骤
1、大概流程
- 明确需求——确定要控制哪些设备,了解设备工作原理
- 查看原理图——查看CPU通过哪些引脚控制设备
- 看芯片手册——CPU如何控制引脚
- 编程实现
- 编译、烧录
- 调试、运行
2、初次运行点灯
明确需求
确定要控制的设备:LED2
了解设备工作原理:一端接高电平,另一端接地时LED灯发光
查看原理图
a、核心板原理图:FS4412_CoreBoard_V2
CHG_COK--> XEINT23/KP_ROW7/ALV_DBG19/GPX2_7(这里用GPX2_7,其他为复用功能)
b、外设板原理图:FS4412-DevBoard-V5
查找:LED-->LED2-->CHG_COK(引脚输出1--亮,0--灭)
查看芯片手册
查看我们要使用的引脚如何进行操作。
这里GPX2分组的引脚由4个寄存器进行管理
寄存器 地址 bit 值-功能 GPX2CON 0x11000c40 [31,28] 0x0 = 输入 0x1 = 输出 GPX2DAT 0x11000c44 [7,0] 0 低电平 , 1 高电平
编程
.text @GPX2_7设置为输出模式 ldr r0 , =0x11000c40 ldr r1 , [r0] bic r1 , #0xf0000000 @将高4位清零 orr r1 , #0x10000000 @将高4位的值置1 str r1 , [r0] @将修改后的值写回到寄存器内 @GPX2_7设置输出高电平 ldr r2 , #0x11000c44 ldr r3 , [r2] orr r3 , #0x00000080 @将第7位置1 输出高电平 str r3 , [r2] @写回寄存器 .end烧写
使用三方软件(超级终端)串口通信
loadb 40008000
运行
在超级终端内传输完成后,输入go 4000800 ,到0x40008000这个地址执行代码
