- 博客(15)
- 资源 (9)
- 收藏
- 关注
原创 Motorola SD/MMC驱动源码分析
今天重新看了一下Motorola的SD/MMC驱动源码,并结合以前的分析记录,做一个总结。以E680为例,按照初始化的过程进行分析。模块初始化函数module_init(e680_mmc_init);在函数e680_mmc_init里初始化定时器,定时器的function函数为e680_detect_handler,当卡插入或取出时调用该函数。init_timer(&e680_detection
2008-07-21 12:43:00 1064
原创 移植Motorola开源的SD/MMC驱动程序
移植Motorola开源的SD/MMC驱动程序首先感谢Motorola的开源精神,它告诉其他嵌入式linux的开发人员:你们不是一个人在战斗,不是一个人!好了,言归正传,下面将介绍我的移植过程。内核版本为linux-2.4.21,CPU是PXA255。下载motorola开源的SM/MM驱动程序源码https://opensource.motorola.com/sf/frs/do/listRe
2008-06-05 10:13:00 1912
转载 U-Boot的移植之(四)调试篇:下载U-Boot到目标板进行调试
U-Boot Practically Porting Guide Author: Aaron Wong aaronwong@engineer.com U-Boot的移植之(四)调试篇:下载U-Boot到目标板进行调试 编译完成之后,得到的几个重要文件是: (1) u-boot.bin: 116K,原始二进制文件,用于下载到启动
2008-05-29 10:34:00 589
转载 U-Boot的移植之(三)实战篇:移植U-Boot到XSBASE270开发板
U-Boot Practically Porting GuideAuthor: Aaron Wong aaronwong@engineer.com U-Boot的移植之(三)实战篇:移植U-Boot到XSBASE270开发板1. 在U-Boot中添加XSBASE270目标板的定义具体方法可参考第一节,本篇给出部分细节和要点,假定$U-BOOT为源码根目录。
2008-05-29 10:12:00 682
转载 U-Boot的移植之(二)进阶篇:从源代码看系统启动过程
U-Boot Practically Porting GuideAuthor: Aaron Wong aaronwong@engineer.comU-Boot的移植之(二)进阶篇:从源代码看系统启动过程为什么要分析源代码?分析优秀的源代码本身就是一个学习的过程,也是进行深入研究的必经之路。不过在此我们的主要目的并非要研究U-boot或Bootloader技术本身,而仅仅是为了成功的
2008-05-29 10:09:00 546
转载 U-Boot的移植之(一)基础篇:添加新的目标板定义
U-Boot Practically Porting GuideAuthor: Aaron Wong aaronwong@engineer.comU-Boot的移植之(一)基础篇:添加新的目标板定义本文使用最新的U-Boot-1.3.0-rc2。U-Boot本身支持很多开发板,在其源代码中,每个板子都对应一个board/目录下的文件夹(笔者注:这并不确切,因为有的文件夹是供应商
2008-05-29 09:54:00 560
转载 Linux设备驱动程序学习(3-补)-Linux中的循环缓冲区
Linux设备驱动程序学习(3-补)-Linux中的循环缓冲区 参考资料:《Linux内核中的循环缓冲区》作者:西邮 王聪 严重感谢文章作者! 但是(可能是源码版本问题)有些结论并不正确: “而kfifo_init只会接受一个已分配好空间的fifo->buffer,不能和kfifo_free搭配,用kfifo_init分配的kfifo只能用kfree释放。” 阅读源码可以得出这
2008-05-29 09:00:00 515
转载 Linux设备驱动程序学习(3)-并发和竞态
Linux设备驱动程序学习(3)-并发和竞态今天进入《Linux设备驱动程序(第3版)》第五章并发和竞态的学习。 对并发的管理是操作系统编程中核心的问题之一。 并发产生竞态,竞态导致共享数据的非法访问。因为竞态是一种极端低可能性的事件,因此程序员往往会忽视竞态。但是在计算机世界中,百万分之一的事件可能没几秒就会发生,而其结果是灾难性的。 一、并发及其管理竞态通常是作为
2008-05-29 08:58:00 387
转载 Linux设备驱动程序学习(2)-调试技术
Linux设备驱动程序学习(2)-调试技术今天进入《Linux设备驱动程序(第3版)》第四章调试技术的学习。 一、内核中的调试支持在前面已经建议过:学习编写驱动程序要构建安装自己的内核(标准主线内核)。最重要的原因之一是:内核开发者已经建立了多项用于调试的功能。但是由于这些功能会造成额外的输出,并导致能下降,因此发行版厂商通常会禁止发行版内核中的调试功能。为了实现内核调试,我在内核配
2008-05-29 08:56:00 549 1
转载 Linux设备驱动程序学习(1)-字符设备驱动程序
Linux设备驱动程序学习(1)-字符设备驱动程序今天进入《Linux设备驱动程序(第3版)》第三章字符设备驱动程序的学习。这一章主要通过介绍字符设备scull(Simple Character Utility for Loading Localities,区域装载的简单字符工具)的驱动程序编写,来学习Linux设备驱动的基本知识。scull可以为真正的设备驱动程序提供样板。 一、主设备
2008-05-29 08:19:00 440
原创 linux bootp和tftp设置
Linux bootp和tftp设置PC端linux系统为Redhat 9。安装bootp下载bootp-2.4.3-7.i386.rpmrpm -ivh bootp-2.4.3-7.i386.rpm添加配置文件 /etc/bootp service bootps { disable =no socket_type =dg
2008-05-28 14:15:00 1241
原创 crosstool制作arm-linux交叉编译工具链
crosstool制作arm-linux交叉编译工具链今天使用crosstool制作了arm-linux交叉编译工具链,并且成功编译和运行u-boot-1.3.0。通过http://www.kegel.com/crosstool/了解crosstool。要制作的交叉编译工具链版本为3.3.2。具体步骤如下:下载crosstool-0.43.tar.gzmkdir /home/wxm/
2008-05-26 16:50:00 815
原创 嵌入式Ramdisk
嵌入式Ramdisk首先在内核配置中选择对Ramdisk的支持,一般会在Block devices的选项中。其次在启动参数中设置root=/dev/ram0。然后修改arm/arm/arch-pxa/myboard.c(不同的板子不同)通过函数setup_ramdisk (1, 0, 0, 8192); setup_initrd (__phys_to_virt(0xa1000000)
2008-05-19 15:37:00 762
转载 嵌入式Linux内核移植相关代码分析
嵌入式Linux内核移植相关代码分析转载于:http://blog.mcuol.com/User/webenson/Article/1816_1.htm本文通过整理之前研发的一个项目 (ARM7TDMI + uCLinux),分析内核启动过程及需要修改的文件,以供内核移植者参考。整理过程中也同时参考了众多网友的帖子,在此谢过。由于整理过程匆忙,难免错 误及讲解的不够清楚之处,请各位网友
2008-05-19 10:00:00 1139
转载 Linux设备驱动程序学习(0)-Hello, world!模块
Linux设备驱动程序学习(0)-Hello, world!模块 一个学习Linux设备驱动程序都会碰到的第一个例程: #include linux/init.h>#include linux/module.h> MODULE_LICENSE("Dual BSD/GPL");sta
2008-05-14 11:18:00 556
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人