ARM裸机
文章平均质量分 91
隋边边
这个作者很懒,什么都没留下…
展开
-
深入理解MCU启动原理
介绍了MCU启动流程涉及的稍微深入一点的原理。原创 2023-04-07 20:34:04 · 2466 阅读 · 2 评论 -
STM32的完整启动流程分析
关于STM32的启动流程,网上有的资料在讨论几种boot模式,有的在回答启动文件的内容,在查阅了很多资料后,本文给出一个比较全面的总结和回答。1. 根据boot引脚决定三种启动模式复位后,在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。BOOT0 为专用引脚,而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样,相应 GPIO 引脚即进入空闲状态,可用于其它用途。BOOT0与BOOT1引脚的不同值指向了三种启动方式:从主Flash启动。主Flash指的是STM32的内原创 2021-12-03 11:03:12 · 17452 阅读 · 6 评论 -
STM32 HAL库IIC驱动
关于STM32的IIC驱动,网上有很多争论,究竟是使用STM32自带的硬件IIC还是用IO口和软件模拟IIC呢?下面这个图形象展示了这些争论。总结一些:ST为了规避IIC硬件的专利问题,将其设计地有点复杂,但是其提供的标准驱动库并没有很好地适配,导致出现一些BUG。但是下图中那位叫theuit的网友指出了:**“难道ST不知道吗?到底有没有改呢?”**目前,至少从我测试的结果来看,可以得到结论:用HAL库来驱动ST的IIC没问题!首先,我们给出两种IIC器件。第一种是带器件中带有寄存器的一类,对这原创 2021-12-02 17:06:23 · 4338 阅读 · 1 评论 -
STM32F4定时器介绍
1. 定时器的种类从下面这个这个图看出,高级定时器相比于通用定时器,高级在其有“带可编程死区的互补输出”。这在H桥等电机控制场景中十分重要。如何理解死区?通常,大功率电机、变频器等,末端都是由大功率管、IGBT等元件组成的H桥或3相桥。每个桥的上半桥和下半桥是是绝对不能同时导通的,但高速的PWM驱动信号在达到功率元件的控制极时,往往会由于各种各样的原因产生延迟的效果,造成某个半桥元件在应该关断时没有关断,造成功率元件烧毁。死区就是在上半桥关断后,延迟一段时间再打开下半桥或在下半桥关断后,延迟一段时间再原创 2021-11-30 20:49:00 · 3074 阅读 · 0 评论 -
ARM "重定位" 与 "分散加载" 之间的联系与区别
目前刚刚学完了ARM的裸机部分,有一个问题一直比较困惑:就是 “重定位” 和 “分散加载” 到底是什么关系?首先结合S5PV210的启动方式,iROM(BL0)中的程序执行完之后,将BL1(16K)从SD卡中复制到SRAM中执行,然后把BL2(剩余的程序)复制到DDR中去执行。把BL2(剩余的程序)复制到DDR中去执行:这个过程其实就是重定位。为什么需要这一步重定位呢?因为程序(uboot)的原创 2018-01-24 16:31:10 · 1974 阅读 · 0 评论 -
S5PV210 液晶屏LCD
1. LCD基本概念1.1 LCD原理液晶分子的偏转,不会改变透过光线的多少,而能改变偏振光的偏振方向,所以在液晶面板的两侧,需要2张偏振片,在背光源和液晶分子之间的偏振片,负责把背光的自然光过滤为单一方向的偏振光,而液晶分子到你的眼睛之间的偏振片与第一张偏振片的偏振方向垂直90度,当没有电压驱动液晶分子旋转时,透过第一张偏振片的偏振光完全被第二张偏振片挡住,显示黑色(0灰阶),当有电压驱动液晶分子原创 2018-01-12 17:27:52 · 1447 阅读 · 0 评论 -
S5PV210-SD卡启动
1. SD卡介绍SD卡是带有控制器和封装的NANDFLASH,各种型号SD卡的接口都是通用的。SD卡支持SD协议和SPI协议,支持SPI协议可以方便单片机的使用。虽然支持两种协议,但是用相同的硬件接口(两根地线,一根电源线,六根信号线)。SD卡是一种ROM,不能按地址读写,只能按块读写。(块/扇区:Block, 一个扇区一般包含512B的内容,使用块来存储的设备称作块设备)SD卡、TF卡、M原创 2018-01-03 09:09:43 · 807 阅读 · 0 评论 -
S5PV210 iNAND/SD卡
在上一篇博客中,我写了NANDFLASH的相关操作,书接上文。由于不同厂家生产的NANDFLASH在接口时序、内部组织架构等方面的不同,导致其在移植时比较麻烦。 与之相比,MMC卡/SD卡有统一的接口,统一的协议,并且将NANDFLASH卡片化。而eMMC(embedded MMC)是将MMC卡做成嵌入式芯片的形式,满足了现代嵌入式对芯片体积的要求,而且eMMC与SD卡的各种操作基本一致。 iN原创 2018-01-04 21:51:15 · 747 阅读 · 0 评论 -
S5PV210-裸机中断
1. 结构框图 这里我以外部中断为例画出了中断响应的过程。 - 当外部中断得到响应,会由硬件自动转到异常向量表,执行对应的异常处理程序。在这里指的就是IRQ的处理程序。 - 在异常处理程序IRQ_handle中将会执行现场的保护与恢复,以及最重要的中断处理函数(注意,这里就来到了中断处理部分,而不是异常处理了,相当于是一个两级的机制)。 - 在中断处理程序irq_handler中(代码如下)原创 2018-01-03 09:21:42 · 691 阅读 · 0 评论 -
S5PV210裸机-Nandflash
1. NANDFLASH基础1.1 Nandflash相对于Norflash, 无法按地址总线进行精确寻址,只能按块(Block)访问。 1.2 Nandflash的制造工艺有两种,一种是SLC(Single-Level Cell), 其特点是每一个单元存储一位数据;另一种MLC(Multi-level Cell),其特点是每个Cell存储两位数据。SLC性能更好,但是MLC更加便宜。 1.3原创 2018-01-03 09:20:48 · 833 阅读 · 0 评论 -
ARM各种异常返回地址的计算
首先,给出ARM的三级流水线结构图,这是后面分析的基础。上图中最左侧为指令的地址,根据三级流水线结构,当PC=0X3008是时,正在执行的的指令是地址为0X3000的这条指令。在分别讲解各种异常之前,有一条总的原则就是:无论发生什么异常(除复位),内核总是会首先将 PC-4 放到LR寄存器中。1. 复位异常复位异常中断处理程序不需要返回。在复位异常中断处理程序开始整个用户程序的执行,因而它不需要返回原创 2017-01-03 11:33:55 · 5795 阅读 · 2 评论 -
S5PV210体系结构
说S5PV210的体系结构实际上是ARMv7架构下的Cortex-A8的体系结构。1 ARM的编程模式大部分ARM提供三种指令集: ARM指令集(32bit)、Thumb指令集(16bit)、Thumb2指令集(16&32bit)Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在处理器执行ARM程式时,称处理器处于ARM状态;当处理器执行Thumb程式时,称处理器原创 2016-11-09 00:10:46 · 1499 阅读 · 0 评论 -
内存/外存及S5PV210启动方式
1 内存与外存 内存是RAM : 如DRAM、SRAM、DDR等,内存的特点是CPU通过地址总线和数据总线来访问。 外存是ROM : 如FLASH(NOR FLASH、NAND FLASH)、硬盘等2 常用外存2.1 NOR FLASH 像内存一样,可以总线随机访问。成本较高,但是稳定性也高,不易坏。 2.2 NANDFLASH 不提供地址总线式的访问,要在外部加主控和电路设计原创 2016-11-02 19:10:48 · 598 阅读 · 0 评论 -
CPU体系结构基础
1 CPU与汇编指令集之间的关系ARM公司负责设计CPU,CPU的作用就是执行机器指令,而汇编语言是机器指令的助记符。每一款CPU都有其对应的汇编指令集,这就是汇编语言移植能力差的原因。2 RISC与CISC的区别RISC与CISC代表了两种CPU的设计理念。CISC是尽可能采用最少的机器语言来完成任务,这就意味着要有大量的指令,CPU的设计也更复杂,功耗更高,但是编译器很容易写。而RISC则只提供原创 2016-10-13 18:49:46 · 743 阅读 · 0 评论