可变参函数
摘要:最常见的可变参函数就是printf了,它的函数原型为 可变参函数至少要有一个确定的参数,后面的...表明该函数第一个参数之后还可以输入若干个参数。 为解析可变参数,C语言提供了一个va_list类型和,并在stdarg.h中声明了四个函数,分别是va_start, va_arg, va_end, 和
阅读全文
文本编辑器vim
摘要:命令行模式 yy:复制当前光标所在的行 [n]yy:复制当前光标开始的n行 p:粘贴复制内容到光标所在的行 dd:剪切光标所在的行 [n]dd:剪切光标开始的n行 G:光标移动到文件末尾 :0或 :1:光标移动到文件开始 u:取消前一个动作 i:进入插入模式 底行模式 w:保存 q:退出(未修改过文
阅读全文
1、进程管理常用命令和进程ID
摘要:常用命令 1. ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。 详细介绍参照:https://www.runoob.com/linux/linux-comm-ps.html 一般使用ps -au和ps -aux 2. kill 用于
阅读全文
查找命令
摘要:1. 查找文件 find 路径 -name 文件名 例:find /root -name hello.c 表示从/root目录下查找名为hello.c的文件(自动递归) 2. 从文件中查找字符串 grep "字符串” 路径 参数 例:grep "hello" . -r 表示从当前路径下寻找含有字符串
阅读全文
linux中ls -l介绍
摘要:[root@localhost ~]# ls -l 总计 152 -rw-r--r-- 1 root root 2915 08-03 06:16 a -rw 1 root root 1086 07-29 18:35 anaconda-ks.cfg ………………………………………… 第1行:总计(to
阅读全文
十三、优化按键驱动(用延迟作业消抖)
摘要:将key.c修改为: 第52行的延时时间与按键质量有关系,按键抖动厉害的话就适当增加时间。
阅读全文
十二、编写按键混杂设备驱动(中断,等待队列)
摘要:key.c key_app.c 这样调用read的时候回阻塞,直到中断发生
阅读全文
linux内核工作队列使用总结
摘要:我总结出的内核工作队列中的4种用法 1. 使用系统的工作队列(不延迟) 1)定义一个工作: 2)编写一个函数: 3)将工作和函数绑定(一般在open函数里面执行) 4)调度工作(实际上是加入到系统的工作队列中) 2. 使用系统的工作队列(延迟) 1)定义一个延迟工作 2)编写一个函数 3)将延迟工作
阅读全文
十一、编写按键混杂设备驱动(轮询)
摘要:1. 确定硬件连接 主要电路连接如下: 从电路图中可以发现开发板上6个按键连接到了GPN0~5,当按键弹起时IO状态应为高电平,当按键按下时IO口状态为低电平。 2. 确定寄存器 下图为寄存器的名称和地址: 下图为配置寄存器的描述: 下图为数据寄存器和上/下拉寄存器: 需要注意的是,GPN默认是下拉
阅读全文
十、编写LED混杂设备驱动
摘要:led.c修改为: 其他文件同上一章一样,但是使用led时只需要先insmod led.ko,不需要再创建设备节点便可以使用led_app控制led
阅读全文
九、编写led驱动
摘要:led.c 1 #include <linux/init.h> 2 #include <linux/module.h> 3 #include <linux/cdev.h> 4 #include <linux/fs.h> 5 #include <linux/io.h> 6 7 #define GPMC
阅读全文
八、启动linux内核并修改开机logo
摘要:1. 编译并烧写linux内核 1)先准备好内核源码包urbetter-linux2.6.28-v1.0.tgz,输入命令:tar -zxvf urbetter-linux2.6.28-v1.0.tgz 解压 2)进入内核源码包目录,修改Makefile,将CROSS_COMPILE改为自己的交叉编
阅读全文
七、在U-boot中让LCD显示图片
摘要:1. 增加Nandflash读取代码 因为要显示图片,而图片明显是放在Nandflash中比较合适,因此需要有能够操作Nandflash的函数。在U-boot中已经有能操作Nandflash的函数了,但是我找了半天也不知道该怎么调用,因此还是上自己的代码吧。 注意第101行我把__nand_init
阅读全文
六、在U-boot中让LCD填充纯色
摘要:1. 编译U-boot 准备好U-boot压缩包urbetter-u-boot-1.1.6-v1.0.tgz,输入命令:tar -xvf urbetter-u-boot-1.1.6-v1.0.tgz 进入U-boot目录,按顺序执行以下命令: make clean make smdk6410_con
阅读全文
五、LCD屏填充纯色
摘要:废话不说,直接上代码: lcd.c lcd.h main.c start.s Makefile
阅读全文
四、使用汇编编写LED裸机驱动
摘要:1. 确定硬件连接 打开OK6410底板电路图,找到LED,可以发现NLEDx为0时LED点亮。 找到LED的控制引脚,发现LED控制引脚通过连接器连到了核心板: 打开核心板电路图,找到对应的连接器中相同位置下的引脚,发现核心板上的命名与底板相同。 注意:设计者为了方便会将核心板与底板连接处的端口命
阅读全文
三、安装交叉编译工具
摘要:1. 解压文件 准备好交叉编译工具arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2,输入命令:tar -xjvf arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 -C . 注意命
阅读全文
二、先在SD卡上启动U-boot,再烧写新的U-boot进Nandflash
摘要:1. 制作SD卡 先准备一张2G的SD卡(不能用8G的,2G的卡和8G的卡协议不一样),和烧写SD卡的工具write_sd以及需要烧写到SD卡中的u-boot-movi.bin。将SD卡格式化后连接到Ubuntu虚拟机中,注意在SD卡需要插入到读卡器中,不能用电脑自带的SD卡槽,否则在Ubuntu下
阅读全文
一、前言
摘要:最近接手了一项工作,内容主要有两点: 吐槽: 本人工作经验只有一年,之前开发过其他平台的裸机代码,但是没有摸过6410,也没有linux驱动开发经验,以下内容大部分都是现学现卖,有不足之处还请指出。之所以写这篇博客是因为本人的垃圾神州Z7M-KP7ZC笔记本电脑上次休眠后发现无论怎样都唤醒不了了,然
阅读全文
Ubuntu配置静态IP
摘要:1. 输入命令:sudo vi /etc/network/interfaces 编辑文件: 第5行的static表示静态IP,如果要获取动态IP则将static改为dhcp并将后面的代码注释掉。 2.输入命令: sudo /etc/init.d/networking restart 重启网络服务
阅读全文
linux执行可执行文件时报xxx:not found
摘要:实际上是因为可执行文件执行时所依赖的动态链接库找不到,解决方法为在编译时加-static表示使用静态链接。 或者使用arm-linux-readelf -d +可执行文件,查看该可执行文件依赖的动态链接库。 /lib文件下为动态链接库,除了编译时加-static外也可以将缺失的库拷贝到该目录下。
阅读全文