迅为4412开发板你们还有用的吗?

– 生成.o文件代表最终被编译进了内核

– 除了menuconfig配置文件,还可以通过.o文件来判定该文件是否编译进了

中定义了一系列的初始化函数,在linux启动的过程中会按等级

– 表示偏移地址和虚拟地址相加

– 表示中断部分,介绍中断的时候再讲(IO口可以配置为中断模式)

– 表示这一小组中有几个GPIO

– 程序员需要关心的标志

– 可以通过手册查到

 查找到S3C_ADDR_BASE宏定义,这是一个虚拟地址,可以看出,地址

范围超出了1G或者2G内存的范围

物理地址和虚拟地址的映射关系

 虚拟地址和物理地址映射

– 虚拟地址一般很好查找,一般在平台相关gpio的文件中就可以找到宏定义

宏定义。搜索时间会比较长,1-5分钟吧。

中也使用了,这是一个平台文件

 映射数组如下图所示

– 这个物理地址0x就是

 初始化过程简单描述

– 平台文件分别定义好物理地址和虚拟地址

– 物理地址和虚拟地址之间映射

 在初始化中,引入了程序员需要使用的GPIO宏定义,并将宏定义装入

置,第一个参数是宏EXYNOS4_GPL2(0),第二个是配置的状态参数

 查找该函数,可以看到进入函数就会调用chip结构体

– 然后计算偏移地址等等一系列操作,这一部分是linux内核以及三星平台完

成的,具体细节不用管。

 也就是我们控制GPIO的时候,可以通过GPIO的一些处理函数加上类似

 后面再具体介绍GPIO操作中,常用函数的使用

 不是说好的分页大小要一样,怎么GPIO经过mmu处理的时候,又有

– 实际上CPU查找地址的时候,仍旧是通过内存。mmu本身不保存具体的数

据,主要是提供一个虚拟地址和物理地址的表格,表格中还有字段的长

度。这个分页和mmu没什么关系,是CPU内存以及物理地址之间通信使用

的概念。这个只是一个抽象的概念,理解mmu只是一个表格,CPUGPIO

 内部寄存器不是很快么,CPU为什么不直接读取?

– 内部寄存器是很快,但是相对于CPU还是非常慢。CPU处理数据是将内存

中一大段一大段处理,如果单个的读取内部寄存器的值,对CPU是极大的

浪费。把内部寄存器也看成“特殊的物理地址”即可。

 只讲了虚拟地址和物理地址对应数组,怎么没介绍哪里调用了?

– 大家可以看一下函数ioremaplinux会调用这个函数来实现gpio的映射关

– 今天讲的已经够多够深入了,大家只要能够理解这么一层意思就可以了

,这个东西对我们实际写驱动的帮助其实不是那么大!

片管脚AC21寄存器的操作”,怎么办?

– 后面跟着我依葫芦画瓢,不影响大家实际写程序,有兴趣再回过头理解

阿里巴巴为您找到0个今日最新的迅为4412价格,迅为4412批发价格等行情走势,您还可以找4412芯片,4412开发板市场价格、批发价格等相关产品的价格信息。阿里巴巴也提供相关迅为4412供应商的简介,主营产品,图片,销量等全方位信息,为您订购产品提供全方位的价格参考。

在这两天搞驱动的过程中遇到了蛮多的问题的,不知道论坛里有多少跟我一样的纯小白,姑且记录下来跟大家分享一下。

一开始的时候我是一步步跟着文档做的

· 修改makefile文件,将目录指定到我解压缩的路径下

有错误!按照终端的提示去百度了下,貌似是要编译下内核源码的,于是按照提示“'make oldconfig && make prepare'”。  再次执行make命令之后,虽然有警告但总归有.ko文件输出。

于是挂载 U盘测试(中途还遇到一个小问题,U盘一直挂载不上,论坛翻了十几页之后看到有人提FAT32,才想起来自己的U盘是NTFS格式的,把U盘格式化成FAT32之后挂载成功,文档的相关章节也没提及U盘格式的问题)


上面是超级终端的输出信息。没有加载成功。版本不对?

我推测是要按照板子的规格修改相应的编译条件再编译内核之类的。于是我开始翻看精英版用户手册里面Linux内核编译的相关章节。最先看到的是第九章,下面是目录


整个第九章节看完之后。。。嗯?说好的内核编译内核呢?


我又朝前翻了一下,才在android编译的目录下找到linux内核编译!按照第五章的教程,拷贝相应的 .config文件,然后执行“make zImage”,结束后编译“HelloDeviceModule”,OK,拷贝U盘测试,OK。

我要回帖

更多关于 为什么选4412开发板 的文章

 

随机推荐