LDD3 硬件通信 章节出现的问题总结

1、编译的时候,出现:

ISO C90 forbids mixed declarations and code

我一直搞不清出怎么事,后来上网google一下,发现原来是变量定义之前,如果有非变量语句出现,那么就有这个警告,把非变量移到变量之后,就没有警告了。不用担心,不是程序问题。

2、我用的s3c6410,在使用端口的时候,我没有用内核给出的端口地址,而是根据手册上写的gpio地址,自己定义的。开始没有用ioremap。报oops。后来查来查去,知道想要用端口,那就要用内核给出的端口地址了,自己定义的话就要ioremap一下。当然还要iounmap。别忘了。当然这种方法下使用的是IO MEM了。。不是IO PORT

3、模块卸载。非常的疼。。。我以前都是在ubuntu上做实验,没有上过开发板。在ubuntu上的时候,要卸载模块,比如hello.ko,使用rmmod hello.ko就行了,但是到了开发板上,得用rmmod hello不要有那个ko。

另外,如果rmmod使用后,报说什么chdir怎么怎么了,没记太清楚,是因为你make内核之后,没有make module。make module之后 还要记得用make module_install 将make好的module放入你自己用nfs建立起来的内核文件系统(就是开发板进入的那个文件系统了)。

4、如果想要使用linux内核定义的s3c6410的gpio端口。首先需要包含如下头文件:

#include <mach/map.h> (主要包含的是端口的物理地址与虚拟地址之间的映射,非常重要)

#include <mach/regs-gpio.h>(包含端口的基地址)

#include <mach/gpio-bank-m.h>(我用的飞凌的开发板,LED连在M端口上)

这三个头文件缺一不可,都要包含上。

我用的是linux 2.6.36的内核。

使用的时候,端口名称为:S3C64XX_GPMCON、S3C64XX_GPMDAT、S3C64XX_GPMPUD三个。

5、另外讲个小白问题。。可惜我不懂。。

上面所说的包含的三个头文件,mach/map.h等,在内核源码下arch/arm/mach-s3c64xx/include/mach




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值