
嵌入式开发
文章平均质量分 63
Hokeo
这个作者很懒,什么都没留下…
展开
-
可重入和不可重入
重入一般可以理解为一个函数在同时多次调用,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象。一般浮点运算都是由专门的硬件来完成,举个例子假设有个硬件寄存器名字叫做FLOAT,用来计算和存放浮点数的中间运算结果假设有这么个函数void fun(){//...这个函数对FLOAT寄存器进行操作}假如第一次执行,有个对浮点数操作运算的结果临时存在FLOAT寄存转载 2014-02-15 15:46:22 · 582 阅读 · 0 评论 -
μcosii内核心跳的设计
近些天在学习μcosii内核的移植,基本上能正常工作,现在大概来梳理一下,已做备忘,主要是内核心跳这一块。1 首先在OS_CPU.H中做OS_TICKS_PER_SEC的宏定义,如#define OS_TICKS_PER_SEC 100表示内核一秒钟内有100个心跳2 心跳主要是用硬件定时器TIMER0来支持,所有要对TIMER0设置: void Timer0Ini原创 2014-01-01 21:29:55 · 780 阅读 · 0 评论 -
SPI、UART、I2C
SPI:高速同步串行口。3~4线接口,收发独立、可同步进行 UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢 I2C:一种串行传输方式,三线制,网上可找到其通信协议和用法的 3根线实现数据双向传输 串行外围接口 Serial peripheral interface UART:通用异步收发器 UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供转载 2013-10-27 11:08:25 · 837 阅读 · 0 评论 -
SRAM和DRAM的区别和联系
问题1:什么是DRAM、SRAM、SDRAM?答:名词解释如下DRAM--------动态随即存取器,需要不断的刷新,才能保存数据,而且是行列地址复用的,许多都有页模式SRAM--------静态的随机存储器,加电情况下,不需要刷新,数据不会丢失,而且一般不是行列地址复用的SDRAM-------同步的DRAM,即数据的读写需要时钟来同步问题2:为什么DRAM要刷新,SRA原创 2013-10-15 16:32:45 · 6749 阅读 · 0 评论 -
SRAM和DRAM
问题1:什么是DRAM、SRAM、SDRAM?答:名词解释如下DRAM--------动态随即存取器,需要不断的刷新,才能保存数据,而且是行列地址复用的,许多都有页模式SRAM--------静态的随机存储器,加电情况下,不需要刷新,数据不会丢失,而且一般不是行列地址复用的SDRAM-------同步的DRAM,即数据的读写需要时钟来同步问题2:为什么DRAM要刷新,SRA转载 2013-10-15 16:30:49 · 1097 阅读 · 0 评论 -
STMFD和LDMFD指令个人理解分析
LDM/STM指令主要用于现场保护,数据复制,参数传送等。STMFD指令STMFD Rn{!},{reglist}{^} STMFD SP!,{R0-R7,LR}对于这条指令伪代码的解释,网上是这么说的:SP = SP - 9×4; address = SP; for i = 0 to 7 Memor转载 2013-12-15 15:22:58 · 961 阅读 · 0 评论 -
S3C2440系统时钟
系统时钟MINI2440开发板在没有开启时钟前,整个开发板全靠一个12MHz的晶振提供频率来运行,也就是说CPU,内存,UART等需要用到时钟频率的硬件都工作12MHz下,而S3C2440A可以正常工作在400MHz下,两者速度相差可想而知,就好比牛车和动车。如果CPU工作在12MHz频率下,开发板的使用效率非常低,所有依赖系统时钟工作的硬件,其工作效率也很低,比如,我们电脑里面经常提到的超频转载 2013-12-10 20:09:55 · 709 阅读 · 0 评论 -
关于ldr、adr指令的总结
主要是区分三条指令: ldr r0, _start adr r0, _start ldr r0, =_start_start: nop其中:ldr r0, _start 的意思是将标号_start处内存中的数据(即机器码或数据)存放到r0寄存器中,是一条伪指令adr r0, _start的意思是将原创 2014-03-02 13:45:32 · 1206 阅读 · 0 评论