- 博客(6)
- 收藏
- 关注
转载 整理uc/os的46个函数
Void OSInit(void);所属文件 OS_CORE.C 调用者 启动代码 开关量 无OSinit()初始化μC/OS-Ⅱ,对这个函数的调用必须在调用OSStart()函数之前,而OSStart()函数真正开始运行多任务。Void OSIntEnter(void);所属文件 OS_CORE.C 调用者 中断 开关量 无OSIntEnter
2011-12-30 13:35:08 993
转载 μC/OSII中软件定时器的优缺点与改进
μC/OSII具有小巧、性能稳定、开源等众多优点,并且μC/OSII大部分用ANSI C语言编写,系统的移植非常容易。在μC/OSII I2.81及以后的版本中[2],加入了对软件定时器的支持,使得μC/OSII操作系统更加完善。 μC/OSII是一种基于优先级的抢占式操作系统,实时性很强。而系统中软件定时器没有优先级,回调函数顺序执行,这样就降低了系统的实时性。因此,本文对软件定时器进行改
2011-12-29 23:08:48 1246
原创 UCOS-II之字节对齐问题
用到ucos这个操作系统,简单容易移植,占用资源少。一般来说,在ucos上运行标准C函数应该是没有什么问题的。这时候问题就出现了 当ucos运行到Cortex-M3上时候,这个时候使用sprintf进行浮点数格式化输出的时候就会有些问题,无法正常输出浮点数,操作系统也会停止运行,处于崩溃状态。 操作系统崩溃有很多原因,我遇到的两个原因是:堆栈溢出和数据对齐。不知道首先遇到的是哪个问题,如果使用MD
2011-12-28 15:18:15 1975 1
原创 FAT12,FAT16,FAT32,NTFS的差异
最古老的文件系统FAT12: 这是伴随着Dos诞生的“老”文件系统了。它采用12位文件分配表,并因此而得名。而以后的FAT系统都按照这样的方式在命名。在DOS3.0以前使用。但是在现在,我们都还能找得到这个文件系统:用于软盘驱动器。当然,其他地方的确基本上不使用这个文件系统了。Fat12可以管理的磁盘容量是8M。这在当时,没有硬盘的情况下,这个磁盘管理能力是非常大的。 Fat1
2011-12-28 09:37:07 7388
原创 pragma pack(n) 对齐用法详解
什么是对齐,以及为什么要对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其
2011-12-26 09:26:38 624
原创 CORTEX-M3的字节对齐问题引起的Fault
Cortex-M3核是32位的,对内存的访问是以4个字节对齐的。比如Luminary的LM3S系列提供的Flash编程函数就要求地址和size都是4的倍数,否则会编程失败。 我今天用Keil MDK调试的时候遇到另外一个问题:在自定义的内存复制函数中,如果用32位的指针(unisgned long *)指向的地址不是4的倍数时,程序就会进入Fault Handle。如果是8位的指针(uns
2011-12-26 09:18:13 2182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人