免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3219 | 回复: 10

让我郁闷了好几天的LED驱动程序和测试程序,终于可以work了 [复制链接]

论坛徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
发表于 2009-12-21 21:29 |显示全部楼层
前面第一次碰到的问题是,我不想手工创建设备结点,使用了device_create,结果使用不得法,改来改去都没让内核顺利跑起来

后来才退而求其次把device_create给去掉了,改用手工创建结点,主设备号也是静态分配一个(不然创建设备结点就复杂了),然后总算把内核跑起来了,而且驱动初始化里边的信息都顺利打印出来了

再后来就是测试程序。有个问题我非常不解,我在测试程序里边声明了一个指针,结果编译顺利无事,但是一COPY到板子上就是segmentation fault,我很不解,这么简单的程序,怎么会有段错误?!于是我又整了个“hello , world”编译到板子上跑(静态编译的一个printf("hello , world \n"居然有510927个bit,这是ARM平台的,X86平台的是 546428个bit:em12: ),结果很正常。于是我就修改测试程序,改来改去都是有段错误,无语啊 ,能用的辙子差不多全用上了,没一个好使。再后来程序里边就省一个printf才正常,然后把注释掉的又一个一个改回来,指针声明改回来后,又是段错误! 彻底晕了!!!:em11: 没办法,我也不知道到底是为什么,只好声明成整型变量,把地址传到函数入口,这才,work起来 太不容易了

前面看书看了N久了,没发觉真正动起手来这么费劲。以前做单片机的,硬件+裸奔,感觉都是直来直去,作到后来调试工具用的都不多,直接看代码,没想到搞到OS下边来,举步维艰哇

论坛徽章:
0
发表于 2009-12-21 23:48 |显示全部楼层
再做一段时间就好了。
以前裸奔的时候,基本上都是静态的多。
在操作系统上基本上所有东西都是动态的。只要是动态的就有难度。

论坛徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
发表于 2009-12-22 09:11 |显示全部楼层
恩啦,在此也感谢给俺于无私帮助和莫大鼓舞的各位大大们!

论坛徽章:
0
发表于 2009-12-22 09:58 |显示全部楼层
恭喜恭喜.

从裸奔到操作系统代替你裸奔,进化了啊。

呵呵
在操作系统代替裸奔下,要遵循操作系统给出的规则(接口)。
自己裸奔,由自己定义规则。

目前俺的状态恰好跟你相反,裸奔去了.

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2009-12-22 10:51 |显示全部楼层

回复 #1 lelee007 的帖子

恭喜恭喜

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-12-22 13:48 |显示全部楼层
看书和实践差别是很大的,有很多问题实践中才能遇到,书上是没有的。恭喜LZ了

论坛徽章:
0
发表于 2009-12-22 14:58 |显示全部楼层
敢问楼主,一般用什么工具来调试驱动程序代码的?

论坛徽章:
3
卯兔
日期:2013-08-26 22:14:57未羊
日期:2013-09-08 19:16:05未羊
日期:2014-10-23 10:34:12
发表于 2009-12-23 10:16 |显示全部楼层
多谢诸位大大,呵呵

RE:7L,这个算是我的处女作,调试全靠printk

论坛徽章:
0
发表于 2009-12-23 17:14 |显示全部楼层
没调试的好郁闷啊,我照着书上写了个程序也老是Oops,每次都必须重启虚拟机了。提示好像是Kfree出错,但是感觉没错啊。。。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2009-12-23 21:24 |显示全部楼层
原帖由 lelee007 于 2009-12-23 10:16 发表
多谢诸位大大,呵呵

RE:7L,这个算是我的处女作,调试全靠printk



printk是比较直接,也比较简单好用的调试方式
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

数据风云,十年变迁
DTCC 第十届中国数据库技术大会已启航!

2019年5月8日~5月10日,由IT168旗下ITPUB企业社区平台主办的第十届中国数据库技术大会(DTCC2019),将在北京隆重召开。大会将邀请百余位行业专家,就热点技术话题进行分享,是广大数据领域从业人士的又一次年度盛会和交流平台。与SACC2018类似,本届大会将采用“3+2”模式:3天传统技术演讲+2天深度主题培训。大会不仅提供超100场的主题演讲,还会提供连续2天的深度课程培训,深化数据领域的项目落地实践方案。
DTCC2019,一场值得期待的数据技术盛会,殷切地希望您报名参与!

活动入口>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP