作者:z
时间:21.09.05 编写
21.09.12 增加波形控制
21.09.13 增加异常处理
ARM
- 1.通讯接口
- 通讯间设备实现
- 功能:实现通过串口2输出字符显示
- 拆解一个工作模版
- 2.中断机制
- 中断,打断之后输出一个字符
- 3.波形控制
- 波形控制例题
- 4.异常处理
- 异常种类
- 中断异常实现方式
1.通讯接口
通讯间设备实现
功能:实现通过串口2输出字符显示
1.通过看电路图找到相应的控制管脚 GPA1_1,GPA1_0
2.看芯片手册找到对应寄存器
a.配置管脚为串口模式
b.功能块设置
3.编程
4.要明白整一个流程
#define GPA1CON (*(volatile unsigned int *)0x11400020)
#define ULCON2 (xx寄存器的具体位置)
void uart_init()
{
GPA1CON = 0x22;
ULCON2 = 0x03;
UCON2 = 0x05;
}
int main()
{
uart_init();
return 0;
}
拆解一个工作模版
1工作路径 ----main.c ----Makefile----map.lds 链接脚本 main.c会生成main.o 这个main.o包含了代码段,数据段,附加段 a.c和start.S也是会生成这样的.o文件,经过lds的链接就生成了大的代码段,数据段,附加段的可gdb调试的.elf文件----start.S 汇编
2.中断机制
中断,打断之后输出一个字符
实现k2 interrupt 按键中断然后输出字符
1.通过看电路图找到相应的控制管脚 GPX1_1
2.看芯片手册找到对应寄存器
a.配置管脚为INT模式
b.功能块设置
3.编程
4.要明白整一个流程
5.左移四位取反,第六行和第七行效果一样,0x0F在芯片手册上看上是0xF,4是指起始第四位【12:4】
#define CPX1CON (*(volatile unsigned int *)0x110000c20)
#define ULCON2 (xx寄存器的具体位置)
void interrupt_init()
{
CPX1CON = (CPX1CON&~(0x0F<<4)
}
int main()
{
interrupt_init();
return 0;
}
3.波形控制
波形控制例题
4.异常处理
异常种类
有硬中断 IRQ FIQ,soft interrupt 系统调用方面为软中断
中断异常实现方式