- 博客(6)
- 资源 (8)
- 收藏
- 关注
原创 linux0.11学习之schedule
在一个操作系统中,最重要的部分就是任务调度,linux的0.11版本的任务调度函数比较简单,所以学习任务调度的原理非常适用。下面我们贴出来schedule函数的代码。 1 2 /* 3 * 'schedule()' is the scheduler function. This is GOOD CODE! There 4 * probably won't be any reas...
2018-05-26 00:10:05 1114
原创 fork函数学习1
1.for函数fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,这个新产生的进程称为子进程。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。需要注意的一点:就是调用fork函数之后,一定是两个进程同时执行的代码段是fork函数之后的代码,而之前的代...
2018-05-25 00:00:19 533
原创 S5PV210的IROM做了什么
对S5PV210_iROM_ApplicationNote_Preliminary_20091126手册里的描述翻译一下。1.关看门狗定时器 这个很容易理解,为了防止后面用户忘记初始化而系统重启。为什么三星要这么麻烦,不默认禁止掉看门狗,我猜看门狗定时器应该是属于内核的内容,是ARM公司定的。2.初始化指令缓存这个是为了加快CPU指令存取,通常CPU取指令是用到一条在内存中读取一条(...
2018-05-13 22:37:18 1118
原创 S5PV210的DDR初始化
S5PV210中DDR的初始化在数据手册中已经说明了步骤,总共27步。本人借助手册进行简单翻译和用代码描述。ddr时间相关的参数是根据我自己的开发板的ddr设置的,如果想用比较通用的参数,可以参考三星的原版uboot,里面的参数范围比较通用。1. 为了提供稳定的电源给控制器和内存设备,控制器必须确保CKE维持低电平。然后提供一个稳定的时钟。注意:XDDR2SEL需保持高来维持CKE为低.通常板子都...
2018-05-12 22:49:55 953
原创 C语言中可变参宏的一种实现方式
好久不写了,有点手生了都。下面主要分析可变参数宏的一种实现。因为C语言的标准库是可平台(处理器)有关的,所以本历程不能保证所有的处理器可用。本人在裸机ARM的处理器上实现过类似printf函数,适合ARM平台使用。下面带代码来自linux内核的stdarg.h头文件typedef char *va_list; #define _AUPBND (sizeof (acpi_native_int...
2018-05-07 19:54:42 1995
原创 u-boot的do_setenv函数简要分析
1.setenv是不需要写等号的 即:setenv bootdelay 10 ,对写等号的使用者会打印使用错误信息。2.查找是setenv的环境变量是否已经存在,存在则oldval为正数。同时若存在则env最终指向那个环境变量的开头,nxt指向那个环境变量的结尾。若不存在,则env和nxt都指向环境变量区最后一个环境变量。整个过程中env_data是始终指向环境变量分区的首地址。3.针对上面查找...
2018-05-06 23:24:05 1932
USB_HID的两篇官方文档
2019-01-10
51单片机移植的ucosii嵌入式操作系统
2018-07-22
基于51单片机移植的ucosii的代码
2018-07-22
基于51单片机写的一个多任务切换的简易OS
2018-07-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人