- 博客(7)
- 资源 (10)
- 收藏
- 关注
原创 【ARM裸板】按键外部中断过程及示例
文章目录1.初始化1.1 中断源1.2 中断控制器1.3 CPU使能中断1.4 start.S设置中断向量表1.5 start.S设置中断处理1.5.1 设置栈1.5.2 保存现场1.5.3 处理中断1.5.4 恢复现场2.中断服务函数2.1 分辨中断源2.2 调用处理函数2.3 清中断1.初始化设置中断源(让它能发出中断信号)设置中断控制器(让它能发出中断信号给CPU)设置CPU总开关...
2020-01-30 23:01:49 969
原创 【ARM裸板】软件中断分析及示例
文章目录1.APP如何切换模式2.SWI中软处理过程2.1设置栈2.2 保存现场2.3 处理swi异常2.4 恢复现场3.取出SWI指令中的值1.APP如何切换模式APP一般运行于User Mode下,受到限制(例如不可访问硬件)如果APP想要访问硬件,必须切换模式如何切换?发生异常即可:软中断,swi #val中断未定义指令异常2.SWI中软处理过程执行异常处理函数...
2020-01-29 23:40:33 573
原创 【ARM裸板】未定义指令异常分析及示例
文章目录1.未定义指令异常示例1.1 在汇编中加入string1.2 MRS & MSR1.3 设置und的栈1.4 保存现场1.5 处理异常1.6 恢复现场1.7 验证2.程序执行过程1.未定义指令异常示例根据5.1可知,执行异常处理函数之前,硬件会处理的事情: 1.lr_und保存有被中断模式中的下一条即将执行的指令的地址 2.SPSR_und保存被中断模式CPSR 3...
2020-01-29 22:53:43 1920
原创 【ARM裸板】ARM模式、异常与状态
文章目录1.两种流程处理2.中断处理过程2.1 硬件初始化2.2 执行程序2.3 产生中断2.4 执行中断3.ARM的7种模式(Mode)3.1 异常向量表4.ARM的2种状态(State)5.异常的处理流程5.1 进入异常5.2 退出异常6.程序以thumb指令集运行6.1 gcc以thumb编译6.2 如何从arm切换至thumb6.3 注意1.两种流程处理1.查询方式特点:简单、但...
2020-01-26 20:25:38 1115
原创 【ARM裸板】内存控制器、SDRAM基础与代码重定位
文章目录1.CPU如何控制外设?2.CPU如何选择寄存器?3.外设共用地址、数据总线,如何互不干扰?4.谁控制片选引脚5.CPU如何读写数据的方向?6.CPU不同位宽设备如何连接并读取数据【内存控制器】6.1 连接方式6.2 CPU读取ROM数据1个字节6.3 CPU读取ROM数据4个字节7.如何根据原理图确定芯片访问地址7.1 方法7.2 Nor Flash确定访问地址7.3 Net芯片确定访问...
2020-01-16 18:05:50 925
原创 【ARM裸板】S3C2440 时钟设置与分析
文章目录1.时钟源最大值2.时钟源2.1 两种时钟源2.2 选择时钟源3.上电时钟分析4.编程控制时钟速度4.1 时钟计算公式4.2 MPLLCON寄存器4.3 CLKDIVN寄存器5.注意事项5.1 注释6.S3C2440默认时钟频率由时钟树分析,时钟源通过选择器接入给MPLL(Main PLL)与UPLL(USB PLL)经过MPLL得到FCLK提供给CPU[ARM920T]FCLK...
2020-01-15 13:55:04 562
原创 【ARM裸板】启动文件与栈的简略分析
文章目录1.start.S过程2.led.c过程3.问题3.1 为什么要设置栈?3.2 反汇编程序分析1.start.S过程设置栈调用main函数,并把返回地址保存在LR(R14)中.text.global _start_start: /* 设置内存: sp栈 */ ldr sp, = 4096 /* nand 启动 */ /* 调用main函数 */ bl main ...
2020-01-15 13:23:38 440
【电赛论文】2019电赛纸张计数显示装置论文
2020-02-03
自动喷洒系统[方案①②]
2018-12-18
C8051F0XX硬件I2C读取PCF8563实时时钟程序
2018-12-17
基于OpenMV与STM32的寻球小车
2018-12-08
[多模式DIY]89C51心形流水灯_程序+原理图+PCB
2018-11-27
STM8S003与PCF8563实时时钟通信并与语音模块通信
2018-11-26
STM8S003最小系统+外设PCB
2018-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人