![](https://img-blog.csdnimg.cn/20200426162829682.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ARM裸机
文章平均质量分 87
记录慢慢理解中的ARM裸机
鸭鸭打瞌睡
这个作者很懒,什么都没留下…
展开
-
05_从0运行,重定位,初始化,中断再到定时器
这边简单讲讲,代码上电后从0开始发生了什么,为什么要重定位把代码复制到sdram,bin文件前面几条跳转函数都跳转去哪 中断产生后发生什么。原创 2023-05-01 17:13:21 · 623 阅读 · 0 评论 -
02_2440soc_内存地址映射和选择,寄存器地址的选择
大多数arm芯片从0开始启动nand_flash控制器外接nand_flash 256Mcpu直接接nor_flash 2Mnor_flash启动时候 nor_flash上面烧了bin文件 nor_flash基地址为0cpu直接读nor上的第一个指令(前4字节),执行cpu继续读取其他指令 执行如果使用nor启动,片内的sram的地址就是 0x4000,0000nand_启动 片内4kram 基地址为0()cpu都从0开始启动。原创 2023-04-16 18:46:42 · 508 阅读 · 0 评论 -
03_2440_裸机时钟体系
这里soc从外界得到外部时钟源,通过硬件的锁相环(PLL)进行加速,加速完的内部时钟通过分频为三个时钟源 cpu_fclk ahb_hclk apb_pclk给不同的器件进行使用MPLL后得到时钟频率放入clkcntrl里面,直接作为FCLK传给cpu经过HDIVN分频,得到HCLK,经过AHB总线传给各种高速设备经过PDIVN分频,得到DPIVN,传给APB总线各种低速外设。原创 2023-04-02 22:33:58 · 136 阅读 · 0 评论 -
ARMv7和ARMv8的区别
记录一些关键的变化:对工程师来说Armv8-A有什么新东西?Armv8-A架构引入了许多变化,可以设计出可实现的性能更高的处理器。因为pc端逐渐对arm架构的偏爱,大的内存和寻址空间就很有必要,原始的32bit只能支持4gb内存大的物理地址这使处理器能够访问超过4GB的物理内存。64位虚拟寻址这使虚拟内存越过4GB限制的。 这对使用内存映射文件I / O或稀疏寻址的现代桌面和服务器软件很重要。自动信号事件这使得高效,高性能的自旋锁成为可能。更大的寄存器文件有31个64位通用寄存器,这提原创 2022-01-01 16:57:34 · 5059 阅读 · 0 评论 -
用幼儿园的话描述arm裸机启动和链接脚本
文件启动分析一个裸机文件启动 要从汇编跳转到c 开始启动肯定是 .S 文件我们可以看看makefile里面 有啥 来判断启动的流程把.c文件 和开始的.S文件 编译成.o 文件 揉在一起 通过连接脚本 成为二进制文件.elf 再变成可以烧录的二进制文件.bin.S就是汇编文件 ,作为第一个启动的文件 通过关看门狗,设置时钟,设置异步,设置栈,就到了我们的 重定位代码重定位分析...原创 2020-04-27 14:26:48 · 308 阅读 · 0 评论