首页 > 教育学习 > 为什么 > 嵌入式 Linux 如何操作 GPIO ?

嵌入式 Linux 如何操作 GPIO ?
2012-01-19 19:52:36   来源:   点击:

    嵌入式 Linux 如何操作 GPIO ?是有个头文件已经定义好芯片的GPIO地址,在驱动程序中直接调用么?还是要自己定义GOPIO地址?

    3 个答案

    • 答案 1:

      直接操作吧,只不过LINUX下的话要按照LINUX提供的“框”写,比如open,read,ioctl等函数都要写。
    • 答案 2:

      系统操作GPIO的方式与WIN差不多 底层都是汇编语言所编写,而且LINUX的GCC会支持一些拓展的标准以达到操作底层的目的。作为程序员,想要操作GPIO只能遵循POXIS规范,使用linux的模块机制进行操作 具体可以买linux驱动相关书籍
    • 答案 3:

      提问者是不是写单片机程序?写单片机C程序的时候会include一个头文件,那个头文件里会定义特殊功能寄存器地址等等,在其他嵌入式处理器里(ARM,DSP等)同样有那些文件,在处理器复位后还没有进入到C程序main()之前做好一切准备工作。比如S3C2410就有2410init.s,2410addr.s,memcfg.s,option.s等等一堆文件。在未用操作系统的项目里,这些文件都是要添加到工程里的,这部分代码就是所说的“启动代码”。而若你要移植上操作系统,则在操作系统启动时,会先有一个引导系统启动的程序Bootloader启动,相当于X86PC的BIOS程序,而Bootloader里,就包含了前面所说的启动代码文件。只要有了那些文件,无论你是写在操作系统下的驱动,还是写裸机程序,都可以不用像汇编里那样非要写地址或者定义地址才能操作IO,而是直接用定义好的名字,比如rGPFDAT=0x0f(S3C2410举例)。不知道你明白了没有?一开始写的答案很简单,但是知乎上的同学都很认真的回答问题,我就静下心来回答一下。我不是高手,好久没接触这方面东西了,回答之中不恰当之处,欢迎大家指正。

相关热词搜索:

上一篇:学术论文如何体现学术精神?
下一篇:做地方性微博可行性如何?