- 博客(7)
- 收藏
- 关注
原创 从应用层打通内核:驱动的工作原理1
1.从应用层打通内核:驱动首先来说是设备号的引入,我们通过 cat/proc/kallsyms |grep mydevice 可以查看设备号,当然我们也是可以自己创建设备号,这是源于我们在写内核模块的时候在程序中指定。设备号有了,他就可以标识我们具体的设备。那我们应用层如何操作那?其实我们应用层需要创建一个设备节点文件创建的方法是sudo mknod /dev/hello c 255 0 这样我们就
2017-01-12 19:57:36 977 2
转载 insmod: error inserting '***.ko': -1 Invalid parameters 真正原因以及解决方法
原因1 :的确是你的内核版本和你Makefile制定的不一样。##这个我就不谈了##原因二:是我们在确保了内核版本和我们Makefile指定的一样的情况下:#竟然还报错insmod: error inserting '***.ko': -1 Invalid parameters 转(http://blog.chinaunix.net/uid-20543672-id-3023
2017-01-11 20:58:48 9050 1
原创 模块问题
今天我们要调试python1:首先我们还是要导入一些包:sudo apt-get install swig3.0 python-pyaudio python3-pyaudio soxsudo apt-get install libatlas-base-dev2:还有个特别重要的事情没有做,那就是我们没有修改声卡:我们多一天用arecord录音用插件方式指定了录音声卡是1:0,现在我们用pyaudi
2017-01-11 20:50:52 897
转载 linux内核符号表
转 http://blog.chinaunix.net/uid-21633169-id-1823329.html所谓内核符号表就是在内核内部函数或变量中可供外部引用的函数和变量的符号表。在 2.6 内核下,使用以下命令可以看到内核符号表:引用beyes@linux-beyes:/> cat /proc/kallsyms | morec0100000 T _tex
2017-01-11 19:27:44 344
原创 驱动开发之模块
【1】模块可以在运行时插入到内核中的代码叫做模块【2】模块和应用程序的区别 应用程序 模块1. 运行空间 用户空间 内核空间2. 入口函数 main 加载函数3. 库 usr/lib 内核源码库4. 资源释放
2017-01-11 19:15:42 366
原创 S5pv210uboot启动第一阶段分析之地址重定位和跳转。
这是uboot启动的第一阶段,我们可以发现,我们来分析一下uboot的第一阶段地址问题:我们知道在编译的时候我们进行了地址的重定位,但是下载的时候我们显然是下载到了flash里面,在开机的时候由控制器加载到了内部Iram中(但是内部的iram仅仅是4K)这4K主要的作用很简单初始化一些设备,同时完成代码的拷贝将代码拷贝到我们链接地址指定的地方。我们的代码在一开始执行的时候我们使用了地址无关的代码(
2017-01-10 15:23:45 736
原创 重新分析: 加载地址 存储地址 链接地址 运行地址
重新分析: 加载地址 存储地址 链接地址 运行地址 首先来说:我这几天,天天刷博客,去研究这个问题,其实讲透了也没什么。1,运行地址链接地址:他们两个是等价的,只是两种不同的说法。2、加载地址存储地址:他们两个是等价的,也是两种不同的说法。其实有时候知道的越多,困扰也就越多,抛弃那些东西,我们来看:还是很好理解的,什么是加载地址:说白了,就是从哪里
2017-01-09 18:36:04 1356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人