作者: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;
}

ARM gpu模型_寄存器

拆解一个工作模版

1工作路径 ----main.c ----Makefile

ARM gpu模型_ARM gpu模型_02

----map.lds 链接脚本 main.c会生成main.o 这个main.o包含了代码段,数据段,附加段 a.c和start.S也是会生成这样的.o文件,经过lds的链接就生成了大的代码段,数据段,附加段的可gdb调试的.elf文件

ARM gpu模型_寄存器_03

----start.S 汇编

2.中断机制

中断,打断之后输出一个字符

ARM gpu模型_异常处理_04

ARM gpu模型_ARM gpu模型_05

实现k2 interrupt 按键中断然后输出字符
1.通过看电路图找到相应的控制管脚 GPX1_1
2.看芯片手册找到对应寄存器
a.配置管脚为INT模式
b.功能块设置
3.编程
4.要明白整一个流程
5.左移四位取反,第六行和第七行效果一样,0x0F在芯片手册上看上是0xF,4是指起始第四位【12:4】

ARM gpu模型_#define_06


ARM gpu模型_异常处理_07


ARM gpu模型_异常处理_08


ARM gpu模型_寄存器_09

#define CPX1CON (*(volatile unsigned int *)0x110000c20)
#define ULCON2 (xx寄存器的具体位置)

void interrupt_init()
{
	CPX1CON = (CPX1CON&~(0x0F<<4) 
}

int main()
{
	interrupt_init();
	
	return 0;
}

3.波形控制

波形控制例题

ARM gpu模型_#define_10

ARM gpu模型_#define_11

4.异常处理

异常种类

有硬中断 IRQ FIQ,soft interrupt 系统调用方面为软中断

中断异常实现方式