06 2018 档案
摘要:一、运行虚拟机 下载后,打开载入后就能运行。ubuntu的密码是:topeet 打开中终端,设置超级用户密码: 然后需要联网更新一下: 1.1 安装windows工具ssh secure shell 然后在ubuntu中ifconfig,打开软件使用quick connect: 输入IP地址,"ro
        阅读全文
                
摘要:一、硬件连接 4412开发板的HDMI口,小HDMI口输出HDMI信号,大HDMI口用来连接各种屏(只是用了HMDI的线,并不是标准的HDMI)。 二、安装超级终端 首先需要安装USB转串口,可以是CH340驱动,或者是PL2303驱动。连接硬件时也要注意,精英版的调试串口是串口2。连接串口1没有信
        阅读全文
                
摘要:网络相关的ioctl请求的request参数及arg地址必须指向的数据类型如下表所示: SIOCGIFCONF SIOCSIFADDR SIOCGIFADDR SIOCSIFBRDADDR SIOCGIFBRDADDR SIOCSIFNETMASK SIOCGIFNETMASK 获取所有接口列表 设
        阅读全文
                
摘要:一、ioctl接口 函数原型: ioctl驱动方法有和用户空间版本不同的原型: 为帮助程序员创建唯一的ioctl命令代码,这些编码已被划分为几个段位,Linux的第一个版本使用16-位数: 高8位是关联这个设备的“魔”数,低8位是一个顺序号,在设备内唯一。 根据Linux内核管理来选择驱动ioctl
        阅读全文
                
摘要:并发问题,并发相关的错误是一些最易出现又最难发现的问题。 设备启动程序员现在必须从一开始就将并发作为他们设计的要素。 一、scull中的缺陷 假设有2个进程("A"和“B”)独立试图写入同一个schll设备的相同便宜,每个进程同时到达上面片段的第一行的if测试。 因为两个进程都在赋值给同一个位置,显
        阅读全文
                
摘要:一、内核调试支持 我们列出用来开发的内核应当激活的配置选项。 CONFIG_DEBUG_KERNEL 这个选项只是使其他调试选项可用; 它应当打开, 但是它自己不激活任何的特性. CONFIG_DEBUG_SLAB CONFIG_DEBUG_PAGEALLOC 满的页在释放时被从内核地址空间去除. 
        阅读全文
                
摘要:一、SDRAM的蛇形等长 SDRAM的地址线、数据线、时钟线等长处理。 地址线的等长±25mil,也就是说最长与最短的距离最大为50mil 数据线和时钟线的误差最大是±50mil,也就是说最长与最短的距离最大为100mil 在PCB中选择from to Editor 选择地址线,然后选择两个Node
        阅读全文
                
摘要:快速参考: 第一节的测试: #include <linux/module.h> #include <linux/init.h> #include <linux/types.h> /* dev_t */ #include <linux/kdev_t.h> /* MAJOR(dev_t dev); MI
        阅读全文
                
摘要:本章目的编写一个完整的字符设备驱动 一、主次编号 字符设备有主设备号和此设备号,主编号标识设备相连的驱动. 次编号被内核用来决定引用哪个设备。设备编号内部表示:dev_t 在<linux/types.h>中定义,2.6.0内核dev_t是32位的量,12位做朱编号,20位用作次编号。应当利用在<li
        阅读全文
                
摘要:一、Hello World模块 hello.c #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_AL
        阅读全文
                
摘要:ldd3(《linux设备驱动程序》)里面使用的正是Linux2.6.10内核,如果内核不同,使用课本里的代码会出现各种问题,所以搭建与课本一样内核版本的环境,用来学习。 尝试过使用ubuntu14.04、fedora21直接编译2.6.10内核,结果都是gcc版本太高,尝试过给gcc降级,各种失败
        阅读全文
                
摘要:一、简介 在编写驱动时, 基础的概念: 编写内核代码来存取硬件, 但是不能强加特别的策略给用户, 因为不同的用户有不同的需求. 驱动应当做到使硬件可用, 将所有关于如何使用硬件的事情留给应用程序.一个驱动, 这样, 就是灵活的, 如果它提供了对硬件能力的存取, 没有增加约束. 然而, 有时必须作出一
        阅读全文
                
摘要:参考资料: https://blog.csdn.net/nemol1990/article/details/45131603 https://blog.csdn.net/qq_27114397/article/details/53378941 https://blog.csdn.net/sunnyx
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号