MCU
lininglive
这个作者很懒,什么都没留下…
展开
-
uC/OS-II系统开发笔记
uC/OS-II是一个简洁、易用的基于优先级的嵌入式抢占式多任务实时内核。尽管它非常简单,但是它的确在很大程度上解放了我的嵌入式开发工作。既然是一个操作系统内核,那么一旦使用它,就会涉及到如何基于操作系统设计应用软件的问题。1、uC/OS-II的任务框架void task_xxx(void *pArg){/* 该任务的初始化工作 */…… /* 进入该任务的翻译 2011-12-08 14:33:53 · 616 阅读 · 0 评论 -
如何防止EEPROM丢数据
一些工程师在使用EEPROM会出现EEPROM丢失的情况。 1、电源异常使EEPROM的数据彻底丢失;2、复位不好和软件跑飞可能会使EEPROM的数据被改写。要防止EEPROM数据被破坏,主要在以下几方面做工作:1、选用比MCU的电源范围宽并有WP引脚的EEPROM芯片;2、做好电源滤波,而且要等电源开机稳定后才去读写EEPROM;3、做好复位电路;4、做好转载 2015-01-13 12:02:33 · 3104 阅读 · 0 评论 -
单片机控制继电器电路
片儿机(单片机)控制继电器电路首先看看继电器的驱动这是典型的继电器驱动电路图,这样的图在网络上随处可以搜到,并且标准教科书上一般也是这样的电路图为什么要明白这个图的原理?单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的转载 2014-01-14 17:21:22 · 4409 阅读 · 0 评论 -
RVMDK环境下STM32的链接过程
编译一开始,RVMDK环境开始对每一个 *.s 文件和 *.c文件进行编译,然后到了“linking”的时候,就是编译器开始对各个文件进行链接。把所有的 *.o文件链接成一个可执行的文件,生成一个 *.hex文件,这个文件就是我们可以下载到flash中执行的文件。我们再看main()函数下面(在usart.c下面)调用了很多的函数,比如:printf()、lcdWrStr()等等,这个函数根本转载 2012-08-29 11:46:10 · 1547 阅读 · 0 评论 -
Realview MDK中链接脚本详细解析
我们在以前的文章里面说过一些链接脚本的应用,但是还是没能系统的介绍,也没有能体现出它的重要性,下面我们来着重介绍一下:使用ARM使用Realview MDK时不可避免的要涉及到链接脚本文件,特别是编译链接那些大的工程文件时更是如此。在编译大的工程文件的时候,如果不掌握好一些链接脚本的编写方法的话,那么有可能会使内存溢出而编译不通过,这样子那就真的比较麻烦了。那么链接脚本有哪些功能呢?转载 2012-08-29 11:48:41 · 984 阅读 · 0 评论 -
Realview MDK中链接脚本详细解析
使用Realview MDK时 不可避免的要涉及到链接脚本文件,特别是编译链接那些大的工程文件时更是如此。在链接脚本中可以指定代码的存储布局,可以将代码段、只读数据段、可读写的 数据段分别存放,甚至可以精确地指定代码放置的位置,这一点是很关键的,譬如说启动代码就必须放在可知型文件的开始位置。由于链接脚本重要性,开发者必须 掌握其编写的方法。Realview MDK链接程序使用了两种方式控制转载 2012-08-29 11:46:59 · 1038 阅读 · 0 评论 -
谈在keil下的代码定位
关于C语言,我们一般都知道对于RAM定位可以用关键字 _at_,但对于程序代码定位往往感到很迷惑,其实keil中的程序代码定位功能极为强大Menu: Options for Target 'Target' -> BL LocateUse Memory Layout from Target DialogCode Range: 0X01D3-0XFFFFXdata Ra转载 2012-08-29 11:45:36 · 1064 阅读 · 0 评论 -
keil 代码定位
在汇编中数据段和程序段都比较容易定位,例如程序1:cseg at 0x0000 ljmp main dseg at 0x20 aa: ds 1 iseg at 0xC0 bb: ds 1 xseg at 0x0010 cc: ds 1 cseg转载 2012-08-29 11:40:53 · 2601 阅读 · 0 评论 -
keil中函数变量定位方法
函数绝对定位方法:将链接方式从LX51改回BL51,然后再BL51 Locate中的Code框中写入:?PR?_DELAY?DELAY(0x8000)其中,前面那个_DELAY是指函数名叫做delay,前面为什么要加_还不清楚,而且原来无论是什么这里都是大写;后面那个DELAY是指文件名叫做delay,也就是说这个函数要到delay.c中去找;括号里面的当然就是要定位到的地址了转载 2012-08-29 11:37:23 · 2297 阅读 · 0 评论 -
uC/OS-II在C8051F020单片机上的移植
1 uC/OS-II的版本和C8051F020单片机的集成开发环境µC/OS-II内核使用了V2.52版本。虽然Silicon Lab公司免费提供C8051F系列单片机的集成开发环境,由于使用习惯,笔者还是选择了µVision2 V2.38A版本,C编译器版本是C51.exe V7.06,汇编器的版本是A51.exe V7.07。适配器使用Silicon Lab公司的EC2,需要说明的是,要在转载 2011-12-08 14:47:42 · 1098 阅读 · 0 评论 -
51单片机Keil C延时程序的简单研究(转)
应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而在极端的情况下,计时器甚至已经全部派上了别的用途。这时就需要我们另想别的办法了。以前用汇编语言写单片机程序的时候,这个问题还是相对容易解决的。转载 2011-12-08 14:39:26 · 706 阅读 · 0 评论 -
uC/OS-II在51单片机上的移植
内容摘要:本文详细系统地介绍了uC/OS-II在51单片机上的移植、重入实现方法、硬件仿真、固化、人机界面等关键内容。 关键词:嵌入式实时多任务操作系统、uC/OS-II、C51 引言:随着各种应用电子系统的复杂化和系统实时性需求的提高,并伴随应用软件朝着系统化方向发展的加速,在16位/32位单片机中广泛使用了嵌入式实时操作系统。然而实际使用中却存在着大量8位单片机,从经济性考虑,对某些应转载 2011-12-08 14:37:16 · 2552 阅读 · 0 评论 -
SD初始化过程以及Cmd解析
SD:1条CMD线,所有的命令和回应都是通过这条线一位一位的传输.不同模式或不同版本下,命令有不同含义.(SD(SD[0],SD[3:0]),SPI))1条时钟线,时钟源是来自APH总线时钟4条数据线,SPI模式下用了两条(一条输出,一条输入),SD的一位模式下一条(输出输入),也可以用完四条(输出输入,DATA[0]将分时复用). SD卡是以块为单位,初始化时有配置,一般为5转载 2016-07-08 15:08:55 · 1198 阅读 · 0 评论