- 博客(43)
- 资源 (16)
- 收藏
- 关注
原创 stm32系列单片机命名规则
示例:STM32F100C6T6BXXX123456789 从上面的料号可以看出以下信息:ST品牌ARM Cortex-Mx系列内核32位超值型MCU,LQFP -48封装 闪存容量32KB 温度范围-40℃-85℃; 1.产品系列: STM32代表ST品牌Cortex-Mx系列内核(ARM)的32位MCU;2.产品类型: F:通用快闪(Flash Memory);L:低电压(1.65~3.6V)...
2018-02-28 09:47:45 2026
转载 ubuntu网络连接消失解决办法
网络连接消失问题解决办法 sudo service network-manager stop sudo rm /var/lib/NetworkManager/NetworkManager.state sudo service network-manager start sudo gedit /etc/NetworkManager/nm-system-settings.con
2013-07-05 23:28:11 1141
原创 flashCS5.5中AS3的应用
需要在fla文件的目录中创建“类名.as”文件存储类。在flash的帧中直接调用类就可以。通过在元件“右键->属性”中设置连接名,(设置同时最好把类导出为as文件),可以把元件转换为类操作。
2013-02-19 00:27:11 703
原创 模拟IO
analogReference(type);type可取值DEFAULT/INTERNAL/EXTERNAL三个宏,表示默认电压5V / 低电压模式,使用便内基准电压源 / 扩展模式 通过AREF引脚获取参考电压。analogRead(pin);读取pin引脚模拟电压值,每读一次需要100us时间。电压值范围在0~1023之间。analogWrite(pin,val
2013-01-28 23:15:00 789
原创 数字IO
/×2013-01-28 recorded by wyj at home.×/pinMode(pin,mode);pin参数为数字引脚,模拟引脚也可以作为数字引脚使用。mode参数为INPUT和OUTPUT两个宏。背景知识:arduino UNO 0~13引脚为数字引脚。其中3,5,6,9,10,11共6个可作PWM输出。在串行通信中,0脚作为RX,
2013-01-28 12:14:15 1238
原创 #、##和attribute
#和##是预处理运算符,需要和#define一起使用。# 表示把后面的对象转换为字符串。##表示把前后两个对象链接为一个。attribute可以为函数、变量和类型增加修饰的属性,具体可查看gcc参考大全。晚了,先回忆这么多。
2012-09-27 00:08:16 461
原创 静态编译和动态编译
静态编译:gcc -c *.c ar -rcs lib*.a *.o用法1: cp lib*.a /usr/lib/ gcc test.c -l* 用法2: gcc test.c lib*.a的完整路径动态编译:gcc -fpic -c *.c //-fpic表示编译为位置无关代码,加载时不需要重定位。动态库都需要-
2012-09-24 23:13:26 498
原创 一个简单程序演示container_of的原理
container_of是内核中常用到的一个宏,它的功能是从结构体内成员的地址得到结构体本身的地址。下面用一个应用程序演示这个功能如何实现的。#include struct temp{ int a; char b; double c;};struct temp t[3]={ {1,'a',1.1
2012-09-22 23:25:27 563
原创 关于list_head
list_head这东西,看名字就是个联表头,可确确实实是链表节点。struct list_head{ struct list_head *next,*prev;};里面就俩成员,一个指向前面,一个指向后面。使用得时候,将此节点包在其他结构体内,就可通过list_head链表将包含它的节点串起来。linux内核提供container_of(pointer, typ
2012-09-20 23:48:01 525
原创 Kconfig学习记录
linux内核中每个目录下都有Kconfig和Makefile。通过他们将内核代码组织起来。Kconfig中主要可分为三部分内容: 一、 菜单项 ##在menuconfig中就会看到一个菜单选项,选择之后可看到内部菜单项 menu "菜单名" 菜单内容 endmenu 二、引用项 ##类似于include
2012-09-20 00:26:27 593
原创 vim应用的一些记录
配置命令列表1.安装exuberant-ctags sudo apt-get install exuberant-ctags2.从www.vim.org下载taglist.zip,解压到~/.vim目录下,打开~/.vom/doc/taglist.txt执行“:helptags .”命令。3.执行完上面两步操作,用vim打开文件,就可以使用:Tlist打开函数列表。打
2012-09-19 23:13:06 767
原创 转载-汇编知识
最近在看马朝辉译的《汇编程序设计》,平台linux,工具gas,语法at&t,都是自己喜欢的东西,所以着手看。本来计划自己整理,但是恰好网上搜到这篇,所以,谢谢了。原文:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1483505############################################################
2009-06-08 16:12:00 1261
原创 ubuntu双系统经常出现移动硬盘挂载错误
这是因为在windows下非正常卸载移动硬盘,还有可能硬盘染毒。在linux下使用如下命令强制挂载。sudo mount -t ntfs-3g /dev/sda** /media/YOURDISK -o force
2009-05-11 22:26:00 1061
转载 单片机的架构介绍
评-单片机的架构介绍 ---- 爱评才会赢 [导读]:什么是单片机的架构?单片机的架构有哪几种?本文对这个问题做了个简单的介绍。单片机的架构根据指令结构可以分为CI
2009-01-15 11:26:00 7676
原创 linux下qt开发opengl的问题
操作系统:ubuntu 8.04qt版本:qt-X11-free-3.2.1遇到问题:编译齐亮的opengl的例子无法通过。问题一:“qt GL/glu.h: No such file or directory”解决办法:sudo apt-get install libqglviewer-dev之后出现问题二:很多东西"undefined reference"解决办法:主要参考(http://qt
2009-01-10 19:25:00 3205
原创 asuro.h介绍
asuro本身带了些函数库,初次实用asuro可以从这些现成的函数入手。这些基本函数的声明都在asuro.h中,如下:/* Init function Processor will be initalized to work correctly *//*这个函数会使处理器复位到设定的初始状态,必须在程序的开头处调用。如果不调用这个函数,处理器甚至不会与PC终端进行通讯。*/void Init(vo
2009-01-09 23:26:00 1414 1
原创 1月4日
这两天准备放假,所以很乱,整理资料,年终总结,今天又陪老婆去做了个手术。刚装好的系统,不知道是自己或是网络问题,csdn有时候无法查看自己写好的文章。就这么三三两两的折腾。很难抽出时间好好写写。书还在看,还是第3章,反反复复。过两天放假了,应该就可以把这章过了吧。因为没有工作的压力,所以对驱动只是兴趣,是业余的爱好,所以不贪多,吃一个是一个。马上就新的一天了,这个算是今天的交差吧。
2009-01-04 23:57:00 631
原创 2009第一篇
今天2009年1月1日。 --以下所用到所有软件我的资源中都有最近实在是闲,所以今天做了这样一个工作,把我的ubuntu卸载掉,重新开始尽量手动的安装一遍。选择的版本还是使用习惯了的8.04,因为这是最近一个LTS版本。本来准备从开始第一步就记录,但是装好后因为还没有输入法,而本人英文又无法那么随心所欲的使用,所以,赶紧使用最直接的方式安装好fcitx之后,现在终于可以开始了。现在开始正是记录每
2009-01-01 10:48:00 911
原创 sudo不能使用
今天发现一个问题,问题描述: 添加了源更新之后sudo无法使用了。 /etc/sudoers的gid不对。系统环境: ubuntu7.10原因: 发现root组的gid被更改为1000之后。解决: 1.直接修改/etc/group和/etc/passwd中root的gid为0。 2.将/etc/sudoers的gid改回0.问题解决.
2008-12-31 16:13:00 848
原创 利器?
今天在写代码,用的gedit+gcc+makefile。gedit看代码的时候翻来翻去太头疼了。只可很前些日子把eclipse弄坏了然后一直也搞不定。本认为用gedit一样的,可发现代码上到百行以后就开始混乱了。还是需要利器啊。今天,就在刚刚,竟然莫名其妙的gedit也停止响应了。而在结束进程后还启动不起来了。难道必须要重新启动?都用了两年linux了,看来应用功底还是不够啊。没办法,难道真的需要
2008-12-29 16:40:00 613
原创 开始scull
/*这是我的scull设备驱动,实现这个驱动的目的是为了检验对于ldd3第三章的理解scull设备介绍: scull设备实际上是这样一段内存,它由数目不定的量子集构成,每个量子集都是由n个连续的固定m个字节的内存去构成。这里的n和m可以在我们加载这个设备的时候设定。量子集的数目随着放入scull设备中的数据的大小而变化。 为了驱动这样的设备,我们需要一些数据结构来描述这个设备。
2008-12-28 22:19:00 1045 1
原创 遇到了一个坎
自从看完第三章,调试通过scull之后,意气风发的进军第四和第五章。书现在是翻完了,课时总感觉不踏实。看书的时候总是习惯性的不停看看读了多少页了,看看侧面多少页被摸黑了。太在意进度,没有笑话透彻。 也看了很多别人的博客,似乎都在学到第三章的时候就卡住了。于是我也去找了understanding the linux kernel看,也搜了一些linux内核的东西,但是总怕越走越远,与以前学习一
2008-12-27 22:12:00 1050 1
原创 对于scull设备的理解
昨天完成了第三章,但是脑子里总是感觉对scull还达不到透彻的理解。昨天睡觉前又想了想这个设备,现在试试以下的理解看可不可以。1)scull是一个设备;2)这个设备通过一个结构体scull_dev描述。3)scull_dev有7个成员,其中 struct qset *data,指向一个用来存储数据的链表,我们把这个链表的每一个节点称为一个量子集,那么data就是这个由n个量子集构成的链表的头
2008-12-26 08:51:00 891
原创 调试技术-1
中午看完了第三章,并且调试了scull。感觉还可以。 但是开始第四章之后,头又大了。自己还是喜欢纯代码的东西。但是调试这里必须过,这是我给自己定的目标,“每天前进一点点,哪怕只有两页,也要一步步的把这本书啃完。”所以,今天的调试必须要写些东西。第一、首先应该打开内核中的调试支持。看书上所讲应该是在编译内核,“make menuconfig”命令出现的裁减内核界面进行这些操作。可是我打开我的2
2008-12-25 21:19:00 907
原创 scull设备的使用
这两天都在看ldd3的第三章《字符设备驱动程序》这一章应该说是对于初学者来说要实现自己的第一个驱动程序scull。个人感觉,要深刻理解和掌握这一章,一定要理解scull到底是什么样一个设备。于是从网上下载到ldd3的源代码(我的资源中有),准备先编译和运行其中的scull驱动模块,看看到底是个什么东西。打开scull目录,发现里面的内容如下:access.cmain.c
2008-12-25 13:54:00 3552
原创 对于scull_read的理解
//ldd3第70页看到的scull_read描述如下:ssize_t scull_read(struct file *filp,char __user *buf,size_t count,loff_t *f_pos){ struct scull_cdev *dev=filp->private_data; struct scull_qset *dptr;//第一个链表项 int
2008-12-25 11:58:00 1673
原创 open和release
//如下是一段增加了open和release的scull代码,还不完整,只是编译通过,暂时保存到这里,一会儿再修改。#include #include #include #include #include #include #include //命令行参数static char *whom="world";static int howmany=1;module_param(howmany,int,
2008-12-25 09:21:00 1215 1
原创 对第二章的读后感
设备要注册到内核,必须要有一个设备号,就如同人要被这个社会认可和接受,就必须要有一个身份ID一样。而设备是什么呢?字符设备在内核中是以cdev结构体的形式存在的,我们要做字符设备的驱动,可以申请一个cdev的结构体来描述这个字符设备。这个字符设备需要有相关的操作方法,所以我们实现了很多方法,通过一个file_operations结构把这些方法和驱动模块关联在一起,然后在通过cdev_init将cd
2008-12-24 15:42:00 1245
原创 三个重要的数据结构
struct file_operations //保存字符设备驱动程序的方法,我的理解是使用该结构可以让字符设备认识谁在为自己服务。就像假如每个字符设备都会有很多助手,有负责穿衣,有负责吃饭等等,那么这个结构的作用就是具体化谁负责穿衣,谁负责吃饭。struct file //表示一个打开的文件。struct inode //表示一个磁盘上的文件。struct cdev //描述
2008-12-24 14:46:00 946
转载 设备号
设备编号的类型: dev_t设备号相关宏:#include int MAJOR(dev_t dev); //得到主设备号int MINOR(dev_t dev); //得到次设备号MKDEV(int major,int minor); //将主设备号和次设备号转换为dev_t类型 相关函数:#include int register_chr
2008-12-23 17:16:00 1198
原创 模块参数
/*带模块参数的驱动模块 使用(insmod hello.ko howmany=n whom="str" )执行的话,可将n和"str"传给模块*/#include #include static char *whom="world";static int howmany=1;module_param(howmany,int,S_IRUGO);module_param(whom,charp,S_
2008-12-23 15:52:00 973
原创 编译模块--Makefile
1.最基本的一个Makefile文件:# hello.o为你需要编译的源代码,若有多个源代码应使用方法二的方式obj-m:=hello.o#方法二obj-m:=module.omodule-objs:=file1.o file2.o将上面的内容保存为Makefile,在命令行输入“make -C /lib/modules/$(shell uname -r)/build M=`PWD` module
2008-12-23 10:44:00 8212 1
原创 当前进程和一些其它细节
2.6内核中current是一个指向struct task_struct 的指针。task_struct在中定义,current指针指向当前正在运行的进程。在read、write等系统调用中,可以通过current指针找到当前进程,比如要打印当前进程的名称和id,就可以如下代码实现:#include printk(KERN_INFO "The process is /"%s/" (pif%i)/n
2008-12-22 23:07:00 560
原创 核心模块和应用程序的对比
应用程序是从头到尾执行单个任务;模块却只是预先调用初始化函数注册自己,然后等待以后被调用,最后使用exit函数卸载自己,从而退出内核。模块仅仅被链接到内核,所以它能调用的函数仅仅是由内核到处的那些函数。printk就是一个内核中功能相当于printf的函数,但是printk缺乏对浮点数的支持。//用户空间和内核空间unix系统设计时利用硬件特性使用了两个级别:内核态和用户态。对于具有多个级别的处理
2008-12-21 21:58:00 521
原创 我的helloworld模块
//我的hello.c,makefile请从我的资源中下载/*第一个驱动程序hello world*/#include #include MODULE_LICENSE("Dual BSD/GPL");//告诉内核,该模块才用了自由许可证,否则转载时会遭到内核抱怨static int hello_init(void)//装载时运行{ printk(KERN_ALERT "hello world
2008-12-20 22:50:00 504
原创 日记-随便写写
前天开始因为工作的事情开始心情不能平静,都这么大年龄了,有时候还是沉不住气,还需历练,总是操心无法把握的事情。还需历练,为了静心,静心,什么都不管,好好看ldd吧。
2008-12-20 00:12:00 477
原创 ldd3流水笔记-2008.12.19 第一章 设备驱动程序简介
模块化:使得驱动程序独立于内核其它部分建立,可在内核运行时根据需要动态“插入”和“卸载”驱动模块。这个特点使得驱动的编写非常的简单。机制和策略: 机制是解决需要实现什么功能的问题;策略是如何使用这些功能的问题。 尽量不要让驱动程序带有策略,可增加驱动程序的灵活性和增加系统的安全。从另一个角度看:驱动程序是应用程序和实际设备之间的一个软件层。所以我们可以在编写驱动程序的时候编写者拥有如
2008-12-19 23:54:00 572
原创 ldd3流水笔记
今天终于下定决心买下了预谋已久的《linux设备驱动程序》(第三版)中文版。听说这本书好久,之前也借阅过尽一个月。借阅的时候通常都是很认真的,恨自己没有一本在手边可以常常之,呵呵。现在,买到了,希望不要让这本书再如以前的一般那种“在山那边的才是幸福”。为了监督自己,特在此留下这流水笔记,希望把自己每天看书的点滴记录,哪怕流水帐般。就算给自己点动力吧,以后每天都要在这里写点关于今天的读书心得。若某天
2008-12-18 21:31:00 779 1
汇编语言程序设计for linux
2009-06-10
poppler-data-0.1解决linux下pdf文档中中文字符乱码的问题
2009-01-19
linux内核调试技术
2008-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人