一、前面的工作:
(1)从头移植3.4.2内核,修改分区,制作jffs2文件系统
http://blog.csdn.net/fengyuwuzu0519/article/details/69802922
(2)修改内核支持yffs2、制作yffs2文件系统、内核裁剪、制作补丁
http://blog.csdn.net/fengyuwuzu0519/article/details/70162666
(3)移植内核支持DM9000C网卡驱动(可以使用mount nfs)、支持三路串口
http://blog.csdn.net/fengyuwuzu0519/article/details/72846205
到此我们移植的内核,已经基本完整,并且包含了网卡驱动,但是驱动还是太少,现在我们把之前写好的2.6.22的驱动,移植到linux3.4.2之中来,扩大系统的驱动。
接下来的工作:
内核升级很多,有很多头文件会被删除,或者某些宏改名或不在使用,导致驱动中的一些头文件不再有效,一些函数无法按以前那样使用,所以我们修改驱动程序的时候,主要是解决内核升级带来的函数变化。因为驱动的编译,依赖于内核。
二、移植linux2.26LED、按键等驱动到3.4.2内核
1、驱动在内核间的移植方法
1. 编译
2. 解决错误
2.1 头文件不对:去掉或改名
2.2 宏不对:改名使用新宏
2.3 有些函数没有了:改名使用新函数
2、移植过程
(1)移植LED驱动
更新内核中的内核目录,需要提前编译此内核目录
直接make,看看有哪些错误
一些头文件不存在了,那就直接去掉看看
再次编译
class_create声明有问题,那就看看内核其他驱动怎么使用这个函数
应该是缺少头 文件,包含一下:
再次编译
发现这个函数是黑色,应该是不再使用这个函数了,那么搜索class_create看看
函数名字改成:device_create
出口函数改名为:device_destroy(firstdrv_class, MKDEV(major, 0));
编译通过,复制到单板
加载驱动
到此LED驱动移植成果。
(2)移植按键驱动
修改makefile后直接make
加入以上头文件
引脚申明没有了
看看在哪个函数用了,内核搜索
如下给出解决方法
继续编译
这个展开后有这个变量,应该是某些头没包含。
缺少头文件,看看别人怎么使用这个函数的
继续编译
搜索request_irq怎么使用
宏的名字改变了搜索这个函数怎么用
好多驱动类似,我们可以通过对比软件来修改:
继续编译:
卸载出错:
函数的参数变了
卸载驱动前 先杀死使用它的应用程序。
上一篇:06-S3C2440学习之移植2012u-boot到S3C2440(移植过程一)新建单板+修改时钟+SDRAM+UART
下一篇:05-S3C2440学习之内核(移植)linux3.4.2移植(3)之支持DM9000C网卡及修改支持串口2
推荐阅读最新更新时间:2024-11-10 10:20
推荐帖子
- LM3开发笔记_3.中断学习
- 对于“裸奔”的系统而言,使用中断是无法避免的,Stellaris外设驱动库的中断操作函数都封装在相应外设的.c/h文件和interrupt.c/h文件中,使用起来非常方便。我比较支持使用固件库,固件库出错的可能性绝对要比自己去直接操作寄存器要小的多,而且使用固件库可以将驱动层和应用层相分离,符合软件分层开发的思想。将固件库的维护交给厂商去做,我们坐享其成,何乐而不为呢。利用《Stellaris外设驱动库》编写一个中断程序的基本方法如下:1.使能相关
- liongt 微控制器 MCU
- 积分问题求助
- 请问有大神明白eeworld的积分机制吗,说是看一节大学堂的课程就可以增加一个积分,但多数时候我观看了课程却没有获得积分,偶尔比较灵验看一课时加一积分,本人只是个菜鸟学生,还没有能力通过发主题帖和输出技术赚取积分,跪求各位大佬指点小弟积分问题求助得分规则详见此页:https://bbs.eeworld.com.cn/EEmall/index.php?act=gettask看了课程没有加分有可能是如下原因:看的时候没有登录账户;或者观看该课时的进度不够,如果点开了只看了一点点也是触发了
- hellomankind maychang趣味电子技术课堂
- 请问这个F28027开发板出了USB供电还可以怎么供电
- 是不是这个地方啊?C:\\Users\\Administrator\\Desktop\\QQ图片20141028192825请问这个F28027开发板出了USB供电还可以怎么供电sorry,图在这。。。小白求助图在二楼不清晰,看不到引两根杜邦线或者焊两根电源线从外部供电拍个清楚的这个行么ltbytyn发表于2014-10-2822:05引两根杜邦线或者焊两根电源线从外部供电 就是从最右下角那个3V3,GND哪里吗?找原理图看看,那里面很详细红圈处拔
- 眞罒逗 微控制器 MCU
- 【2022得捷电子创新设计大赛】 部署区块链智能合约
- 【2022得捷电子创新设计大赛】部署区块链智能合约FISCOBCOS平台目前支持Solidity及Precompiled两类合约形式。*Solidity合约与以太坊相同,用Solidity语法实现。*KVTable合约的读写接口与Table合约的CRUD接口通过在Solidity合约中支持分布式存储预编译合约,可以实现将Solidity合约中数据存储在FISCOBCOS平台AMDB的表结构中,实现合约逻辑与数据的分离。*预编译(Precompiled)合约使用C
- 29447945 DigiKey得捷技术专区
- cc2540 cc2541 低功耗实测和总结-与注意事项 - 低功耗小于10uA
- 总结一下,实现方法:1,有定时器在跑时会一直跑在PM2电流在300uA左右。没有定时器跑后会到PM3,电流会少于10uA。这个定时器是指osal的定时器,例如:启动了osal_start_timerEx(keyfobapp_TaskID,KFD_TOGGLE_BUZZER_EVT,2000);但没到时间:需要说明的是keyfob中的低功耗一直都是进不去PM3的,这是由于有一个查询电量的定时器一直在跑:o
- Aguilera 无线连接
- IPv6 速率2500兆 令人羡慕
- 全国第一个地区性的IPV6互联网———新一代上海教育与科研计算机网昨天成功开通运行,这标志着上海教育信息化水平已跻身于世界领先水平,将对教育信息化应用水平的提高产生重大影响。 据悉,新开通的IPV6上海科教网的速率目前可达2500兆,它所具有的海量IP地址、高传输速度、高图像清晰度、高管理安全性,将使网上应用的规模和水平产生革命性的突破,如网络计算、高清晰度电视、智能交通、环境地震监测等,将为建设和发展上海“数字城市”创造优越的信息化环境。据上海市教委信息部门负责人介绍,IPV6上海
- mdreamj RF/无线
设计资源 培训 开发板 精华推荐
- LTC3119IUFD 5V、1MHz 宽输入稳压器的典型应用电路
- DVK-SFUS-API-1-GEVK:适用于 RCZ2 的 Sigfox™ API 开发套件
- LT1117CM 具有基准的低压差正稳压器的典型应用
- DC2093A-C,用于 LT4275C PD 控制器的演示板,符合 IEEE 802.3af 规范
- 使用 Analog Devices 的 LT1585CT 的参考设计
- 基于 Blackfin 数字信号处理器 (DSP) 的 ADZS-BF561-EZLITE、ADSP-BF561 EZ-KIT Lite 评估系统
- AM6TW-4815SZ 15V 6 瓦双路输出 DC-DC 转换器的典型应用
- LT3433、8V-60V 至 12V 转换器
- LTC3203-1、500mA 输出电流、低噪声双模式电荷泵
- MIC5234 的典型应用:低静态电流 150mA LDO 稳压器