weiqi7777

关于==和&优先级问题

&nbs

FPGA状态机电路综合分析

在FPGA中,状态机是比较常用的。特别是要处理一些串行执行的操作。但是对于我们编写的状态机,综合出来的电路应该是长什么样子的了?这个在初学的时候都是不关心的,但是深入的话,还是要了解的。&n

使用乘法器实现各种移位操作

昨天看了一本书,使用乘法器来实现各种移位操作。包括逻辑左移,逻辑右移,算术右移,循环右移。实现的框图如下所示:考虑对32位数据处理&n

基于S3C6410的ARM11学习(十六) 外部中断

中断在嵌入式里面是很常见的一个功能了。通过这个功能,可以让CPU减轻很多负担,不用不断的查询设备的状态。提高了CPU的效率。中断的过程如下:中断源检测中断信号产生,然后将中断信号发送给中断控制器,中断控制器判断该中断是否被屏蔽,从而决定该

基于S3C6410的ARM11学习(十五) MMU来了

如今,已经是到了main的世界了。下面就要来体验ARM11的MMU,这个东西在STM32中是没有的。之前在核心初始化过程中,是将MMU功能给关闭的。那是因为那个时候,操作的都是物理地址,所以需要将MMU关闭。MMU,内存管理单元

基于S3C6410的ARM11学习(十四) 终于到main了

基本上qboot的第一阶段的汇编开发已经结束了,c的环境已经设置好了,下面就要进行c语言的程序开发了。学过c语言的都知道,程序运行的第一个函数就是main函数。不过在嵌入式中,这个第一个函数可就不一定就是main函数了,也可以是其他函数了。在我的设计中,

基于S3C6410的ARM11学习(十三) C语言环境初始化

如今,汇编的部分,就剩下最后一步了。C语言环境初始化。因为后面的代码要用C语言来写了。毕竟C语言编写比汇编要容易对了,而且c程序具有易读性。C程序要运行

基于S3C6410的ARM11学习(十二) 代码拷贝及led测试输入日志标题

之前已经将ddr进行初始化了,这样就可以使用ddr了。首先就要将代码从steppingstone拷贝到ddr中。最后在ddr中运行程序。如果外

基于S3C6410的ARM11学习(十一) DDR初始化

之前的程序都是在内部的steppingstone中运行的。但是steppingstone的大小是很小的。ARM11只有8K的大小。这么小的空间,要运行大型程序肯定是不行的。所以就需要外部的存储器。ARM11的外部存储器用的是ddr。所以就要对ddr进行初始化,同时

基于S3C6410的ARM11学习(十) 时钟初始化

之前已经用led验证了核心初始化的代码是可以用的了。接着就要进行到下一步,这一步就是时钟初始化,因为在时钟初始化之前,CPU的系统时钟都是跑在外部晶振12M上的,这速度也太慢了,S3C6410可是跑在600多M时钟上的。所

基于S3C6410的ARM11学习(九) 点亮led

之前已经对S3C6410的核心初始化完成了,但是这个也只是完成了,但是程序到底对不对了,还需要验证。最简单的验证方法是什么了,就是点亮led。如果在核心初始化完成后,我们写程序去点亮了led,就说明初始化代码是没有问题。&

基于S3C6410的ARM11学习(八) 核心初始化之设置外设基地址

下面就是核心初始化的最后一个了。外设基地址初始化。这个操作是告诉CPU外设的基地址是多少。之前,对这个很疑惑,外设的基地址对于芯片来说,不是已经固定了,还要告诉他基地址是多少干嘛了。STM32就不用这一步操作。这个时候,就

基于S3C6410的ARM11学习(七) 核心初始化之关闭MMU和CACHE

在关闭了所有中断后,就要关闭MMU和CACHE了。因为这个时候,还在初始化环境,这两个东西是用不到的。所以就需要把他们都关闭,免得影响我们的初始化。MMU是MemoryManagementUnit的缩写,中文名是存储器管理单元。主要是两个功能:1

基于S3C6410的ARM11学习(六) 核心初始化之关闭所有中断

上一次,我们完成了核心初始化之关闭看门狗了。下面就要关闭所有中断了。因为这个时候还在初始化整个硬件环境,应用程序还没有开始跑,所以是不希望有中断产生来打断CPU工作的。中断是嵌入式系统中很重要的东西了。因为有了这个东西,可以使CPU解放出来,做更多的

基于S3C6410的ARM11学习(五) 核心初始化之关闭看门狗

之前已经完成了设置中断向量表和设置处理器模式。下一步,就是要关闭看门狗。看门狗,这个东西,在嵌入式系统里面是很常见的一个东西。这个是芯片预先做好的硬