
【ARM裸板】
文章平均质量分 92
S3C2440
淹死的大白鲨
EXPLORE & FIND
展开
-
【ARM裸板】LCD硬件原理、时序及初始化
文章目录1.LCD与OLED的区别2.LCD原理2.1 颜色如何确定?2.2 LCD如何“行扫描”?2.3 如何跳到下一行进行“行扫描”?2.4 如何进行下一个“场扫描”?3.LCD时序4.LCD控制器4.1 像素数据格式4.2 调色板5.编程框架6. 结构体参数6.1 引脚极性结构体6.2 时序结构体6.3 LCD控制器结构体7.初始化LCD引脚8.LCD控制器初始化8.1 LCDCON18.2...原创 2020-02-04 23:05:55 · 2886 阅读 · 2 评论 -
【ARM裸板】Nand Flash编程
文章目录1.读芯片ID1.1 读芯片ID时序1.2 由ID数据获得芯片参数2.读数据2.1 NAND内部结构分析2.2 地址序列与时序2.3 读数据流程2.4 转换所读地址的列与页2.5 NAND等待就绪2.6 读取数据函数2.7 NAND重定位2.7 读数据测试3.擦除3.1 擦除时序3.2 地址和参数合法性3.3 擦除函数3.4 擦除数据测试4.写数据4.1 写数据时序4.2 写数据函数4.3...原创 2020-02-03 22:54:19 · 1888 阅读 · 1 评论 -
【ARM裸板】Nand Flash基础与时序分析
文章目录1.硬件知识1.1 如何传输地址信号?1.2 如何传输命令?1.3.NAND、NOR、SDRAM、DM900数据总线,如何互不干扰?1.4 给NAND烧写,如何判断烧写完成?2.如何操作NAND2.1 读ID2.2 读内容3.NAND初始化3.1 时序3.2 注意NAND是8位的3.3 NAND控制器使能、初始化ECC1.硬件知识1.1 如何传输地址信号?DATA0 ~ DATA...原创 2020-02-03 22:52:29 · 2045 阅读 · 0 评论 -
【ARM裸板】Nor Flash基础知识与编程示例
文章目录1.NOR与NAND的区别2.命令表2.1 读数据2.2 读ID2.3 CFI模式3.基本函数3.1 写函数3.2 读函数4.识别NOR4.1 读取ID号4.2 进入CFI Mode4.3 读取容量4.4 读取各个扇区4.4.1 获得region数量4.4.2 region详细信息4.5 退出CFI Mode5.写数据5.1 写入5.2 判断数据写入完成6.测试6.1 读取6.2 写入6....原创 2020-02-02 22:56:46 · 1864 阅读 · 0 评论 -
【ARM裸板】定时器中断示例与分析
1.定时器结构分析 1.每来一个CLK,TCNTn减1 2.当TCNTn == TCMPn时,(可以把对应的PWM引脚翻转)TCNTn与TCMPn的值来自寄存器TCNPBn与TCMTBn 3.TCNTn继续减1,当TCNTn == 0时,可以产生中断(PWM引脚再次翻转) 4.TCNTn == 0时,可自动加载初值2.初始化1.设置时钟源2.设置初值3.加载初值,启...原创 2020-02-01 22:52:21 · 1023 阅读 · 0 评论 -
【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 · 1034 阅读 · 0 评论 -
【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 · 623 阅读 · 0 评论 -
【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 · 2039 阅读 · 0 评论 -
【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 · 1175 阅读 · 0 评论 -
【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 · 981 阅读 · 0 评论 -
【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 · 610 阅读 · 0 评论 -
【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 · 504 阅读 · 0 评论