- 博客(8)
- 资源 (6)
- 收藏
- 关注
原创 Linux内核同步,进程,线程同步
内核同步:主要是防止多核处理器同时访问修改某段代码,或者在对设备驱动程序进行临界区保护。主要有一下几种方式:1. Mutex(互斥)头文件:#include 初始化方法:DEFINE_MUTEX(name);或者void mutex_init(struct mutex *lock);使用方法:void mutex_lock (struct mutex *lo
2012-12-26 19:29:43 1421
原创 WinCE中sources文件中targetlibs与sourcelibs区别
在WinCE里面,编译和链接的必备文件sources,做过WinCEBSP开发的一定都很熟悉,其中有2个关键字,targetlibs和sourcelibs,一直让我对其中的区别很感兴趣,故查阅了一些资料,与大家分享。 其实只要搜索以下就会得到一些基本的答案,比如:TARGETLIBS,如果一个库以DLL的形式提供给调用者,就需要用TARGETLIBS,它只链接一个函数地址,系
2012-12-19 15:04:25 807 1
转载 Windows CE下访问物理内存的方法
嵌入式设备与桌面PC的一个显著不同是它的应用程序中通常需要直接访问某一段物理内存,这在驱动程序中对物理内存的访问尤为重要,尤其是像ARM体系结构下,I/O端口也被映射成某一个物理内存地址。因此,与桌面版本Windows相比,Windows CE提供了相对简单的物理内存访问方式。无论是驱动程序还是应用程序都可以通过API访问某一段物理内存。Windows CE的有些函数中需要用到物理内存结构体P
2012-12-13 21:01:49 828
原创 romimage
1. romimage是什么?romimage是wince编译过程中最后一步。在此之前,ce的编译系统已经调用自己的arm编译器,对每个模块完成了编译工作,并生成了.exe,.dll等文件;同时针对当前的环境设置,生成了.bib,.reg等文件。另外还有一些别的文件。最后编译系统将所有这些需要“打包”的文件,拷贝到_WINCEROOT\release目录下。而romimage的作用,就是根据c
2012-12-13 21:00:44 1741
原创 Wince5内核启动流程
索引1. 从KernelStart开始2. arm9虚拟地址到物理地址的转换3. ;;写到再说1. 从KernelStart()开始事实上,kernel并不是从KernelStart()开始运行。eboot加载内核后,跳转的地址是startup.s文件的StartUp()函数(此处忽略msipl)。这个文件一般位于bsp目录中。这个函数会做一些预处理工作,之后跳到另一个star
2012-12-13 20:59:23 1128
原创 S3C2410下WinCE6.0的启动过程详解
OAL(OEM Adaptation Layer)即OEM适配层,它的主要作用是在移植WinCE到新的硬件平台时减少操作系统的修改,通俗的说就是为WinCE操作系统抹平MCU的差异,使其能很方便的在不同MCU上运行。所以,OAL包括了和系统硬件通讯的最底层代码。内核则通过OAL跟硬件进行交互。逻辑上,OAL是介于CE内核和设备硬件之间的一个代码层,是一个抽象的概念。物理上,OAL和其他一些库一起链
2012-12-13 20:49:30 961
原创 WINCE BSP中source文件中的宏定义
在WinCE BSP中会看到很多sources文件,一般会和源代码放在同一个目录,当然不是绝对的。这些sources文件里面就是定义了一些宏,主要用于告诉Build.exe在编译源代码的时候应该如何编译和链接,告诉Nmake.exe如何编译源代码以及最后生成什么类型的文件。下面具体介绍一下:TARGETNAME:最后编译完后生成的目标文件的名字,不包括扩展名。TARGETTYPE:生成
2012-12-11 16:07:07 518
转载 WINCE TOC解析
1. TOC是什么TOC:Table Of Contents, OEM on disk structure.2. 为什么要进行全局变量重定位Bootloader的主控制函数BootloaderMain()调用的第一个函数是KernelRelocate (pTOC),WINCE操作系统OAL模块的启动过程中调用的ARMInit()函数页调用了KernelRelocate (pTOC)
2012-12-11 15:56:12 695
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人