arm11
痞子IT
开源,共享,谋发展!
展开
-
基于S3C6410的ARM11学习(一) 基础知识
手上有一块OK6410的板子,就想起来花点时间学习下经典的ARM系列ARM11。了解一下ARM11的开发流程,以及怎么跑系统。ARM11和之前学习的STM32的开发是很不一样的。STM32,都是把代码烧到STM32芯片FLASH中,然后代码从FLASH中执行,而且程序执行是不需要外部挂ram的,因为芯片的内部就集成了一定大小的ram。而ARM11是不一样的,内部没有FLASH和ra转载 2016-02-19 14:21:52 · 4643 阅读 · 0 评论 -
基于S3C6410的ARM11学习(二) bootloader开发准备
程序之旅,首先就是要写bootloader。对于我们这种初学者来说,肯定是要去参考行业老大uboot的代码了。看看别人写的bootloader的流程是怎么样的。毕竟,ARM11和STM32是不一样的,执行main函数之前的工作都需要自己写代码,而不像开发STM32,直接调用ST公司提供的启动start_up.S启动代码。 通过查资料以及看视频,最终得到下面这个uboot流程的思维导图。转载 2016-02-22 14:24:05 · 1574 阅读 · 0 评论 -
基于S3C6410的ARM11学习(三) 核心初始化之设置中断向量表
前面将流程搞清楚后,下面就开始进行按照顺序来编写程序了。 第一步就是进行中断向量表的设置。在ARM11中,中断向量表叫做异常向量表。 ARM11共有10种异常,这个在ARM11的datasheet中有。 这里说明一下:异常说明详细说明Reset复位转载 2016-02-22 14:33:51 · 2932 阅读 · 1 评论 -
基于S3C6410的ARM11学习(四) 核心初始化之设置处理器模式
之前已经设置中断向量表了,下面就要进行设置处理器的模式。 对于ARM11,有8种模式,不同的模式,权限是不一样的。在bootloader开发的时候,我们需要将处理器的模式设置为Supervisor模式,即SVC模式。这样,权限就高了,可以访问ARM的所有资源。用户模式的权限是最低的,而且要从用户模式切换到其他模式的话,只能通过异常的方式。用户模式(User): ARM处理器正常的程转载 2016-02-22 14:50:57 · 1168 阅读 · 0 评论 -
基于S3C6410的ARM11学习(五) 核心初始化之关闭看门狗
之前已经完成了设置中断向量表和设置处理器模式。下一步,就是要关闭看门狗。 看门狗,这个东西,在嵌入式系统里面是很常见的一个东西。这个是芯片预先做好的硬件,软件可以对硬件进行配置。说白了,这个东西就是一个定时器,定时器溢出的时候,如果设置开启看门狗的话,就会强制CPU复位。这样,好处就是防止程序跑飞。因为程序正常执行的时候,我们肯定是要对看门狗计数清零的,这样才能保证看门狗不会溢转载 2016-02-22 15:31:25 · 1692 阅读 · 0 评论 -
基于S3C6410的ARM11学习(六) 核心初始化之关闭所有中断
上一次,我们完成了核心初始化之关闭看门狗了。下面就要关闭所有中断了。因为这个时候还在初始化整个硬件环境,应用程序还没有开始跑,所以是不希望有中断产生来打断CPU工作的。中断是嵌入式系统中很重要的东西了。因为有了这个东西,可以使CPU解放出来,做更多的事。学单片机的时候,对于按键,我们可以采用轮询检测,隔一段时间就去检测看看按键有没有按下,有按下的话就进行处理。没有的话就跳过。而使用外部中断转载 2016-02-22 16:03:38 · 805 阅读 · 0 评论 -
基于S3C6410的ARM11学习(七) 核心初始化之关闭MMU和CACHE
在关闭了所有中断后,就要关闭MMU和CACHE了。因为这个时候,还在初始化环境,这两个东西是用不到的。所以就需要把他们都关闭,免得影响我们的初始化。 MMU是Memory Management Unit的缩写,中文名是存储器管理单元。主要是两个功能:1、虚拟地址转换为物理地址2、实现内存的保护 至于具体的MMU的一些知识,等后面用到了在说明了。目前,只需要将M转载 2016-02-22 16:43:11 · 1470 阅读 · 0 评论