
ARM体系结构学习
文章平均质量分 90
ALL IN C
没有什么问题是解决不了的
展开
-
7. 自实现Bootloader
Bootloader自实现1. 启动流程2. 自制Bootloader12.1 在BL1中添加蜂鸣器提示2.2 编译和测试2.3 在BL1中添加初始化时钟驱动和串口驱动2.4 编译和测试2.5 在BL1中添加初始化DDR驱动2.6 在BL1中添加初始化NandFlash驱动2.7 编译和测试Bootloader别名:启动加载器作用:初始化硬件,启动操作系统1. 启动流程NFC:NandFlash控制器首先是iROM做的事情初始化硬件1.关闭看门狗定时器,因为它是默认开启的,每隔一段时间会重启原创 2021-11-20 14:20:04 · 723 阅读 · 0 评论 -
6. ARM接口编程
ARM接口编程1. GPIO编程1.1 学会看原理图和手册1.2 蜂鸣器驱动汇编版本1.3 编译和运行1.4 蜂鸣器驱动C语言版本1.5 编译和运行2. 串口编程2.1 并行和串行接口介绍2.1 串口电路原理图和手册2.2 串口编程2.3 编译和测试2.4 从0实现printf函数2.5 编译和运行3. Nand Flash编程3.1 Nand Flash管脚定义3.2 Nand Flash地址结构图3.3 Nand Flash电路原理图和手册3.4 Nand Flash编程实现初始化3.5 编译和测试S原创 2021-11-17 21:29:11 · 975 阅读 · 0 评论 -
5. ARM时钟系统
ARM时钟系统时钟设置编码实现编译和测试时钟是同步工作系统的同步信号,SOC内部有很多控制器,例如CPU,串口等外设,这些外设需要协同工作,互相通信,就需要同步的时钟系统来指挥。这个就是Soc的时钟系统。时钟设置编码实现查手册和系统时钟图算出各位置应该配置的值:计算分频器每部分应该设置的值之前的各时钟是由uboot程序设置好的,现在我们在跳转到C语言的main函数之前自己重新设置相应的时钟。start.s:.global _start_start: b reset b undef原创 2021-11-16 22:21:47 · 798 阅读 · 0 评论 -
4. ARM中断处理实现
ARM中断处理实现1. 中断概念2. 中断流程图3. 中断控制器流程图4. 外部中断实现1. 汇编程序2. C语言程序3. 编译和运行1. 中断概念为什么要有中断?cpu和外设之间要进行通信,那么cpu怎么知道外设有数据来,有两种方式:2. 中断流程图cpu处理步骤:1.保存现场2.向中断控制器查询是哪个中断3.执行中断处理程序4.恢复现场GPIO控制器:1.CON:功能配置寄存器2.INTC:触发方式3.PEND:中断记录标志位4.MASK:开关3. 中断控制器流程图原创 2021-11-16 12:25:05 · 2215 阅读 · 0 评论 -
3. ARM异常处理机制
ARM异常处理机制1. ARM的工作模式2. ARM寄存器组3. 异常向量表4. Undefined异常实现示例1. 通过查手册得到负责映射的协处理器的寄存器操作指令2. 重映射异常向量表程序3. 异常处理程序4. 运行5. swi异常处理实现1. 重映射异常向量表程序2. 异常处理程序3. 运行1. ARM的工作模式用户模式:权限低,只能访问一部分内存资源系统模式:权限高,能访问很多资源异常模式:当异常出现时,能够保证cpu不挂掉而去执行异常处理程序Supervisor:管理模式,cpu一上电原创 2021-11-15 17:12:20 · 846 阅读 · 0 评论 -
2. GCC开发环境搭建
GCC开发环境搭建1. 开发环境介绍2. 安装环境3. SD卡烧写uboot4. 裸机程序开发实例准备工作进行编程应该怎么编译呢?发送到开发板1. 开发环境介绍2. 安装环境1.安装编译器2.编译uboot3. SD卡烧写ubootiROM:一段固化程序 1.初始化硬件,关闭看门狗,初始化协处理器,icache,初始化时钟 2.判断OM开关,即判断是从那个外部设备启动设备1.先将uboot.bin烧入到SD卡中2.拨码开关拨到SD卡启动方式3.设备启动:先将uboot.bin的前面原创 2021-11-14 23:17:55 · 1456 阅读 · 0 评论 -
1. ARM汇编指令集
汇编指令集一、汇编语言介绍1. 概念2. 优缺点3. ARM指令集特点二、指令格式1. 立即数的编码规则2. Keil5汇编keil5汇编程序示例验证对立即数的操作三、数据传送指令1. mov mvn 使用示例2. ldr指令对非立即数的操作3. 往寄存器中存放数据的方式4. add sub mul 使用示例四、数据运算指令(位运算)1. orr and bic 示例2. 按需置1清零用法五、内存操作指令1. swp使用示例2. ldr str使用示例3. str连续存储4. ldmfd stmfd 指令原创 2021-11-14 22:06:45 · 1024 阅读 · 0 评论