自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hemoparrot的专栏

记录每天学习的点滴

  • 博客(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

原创 今天使用了WPS for linux,爽。

需要复制些字体到~/.fonts下就更爽了。

2013-09-11 09:44:30 3008

转载 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

原创 开始第5章-并发和竞态

这张会比较困难,因为之前写代码的时候对进程的同步问题就比较生疏,所以这章--努力!好,先写这么一句做为开始。看书去了

2008-12-25 23:35:00 711

原创 调试技术-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

非常适合linux下的c/c++程序员继续学习汇编语言。该书使用环境:IA-32处理器,Linux操作系统,gnu工具,at&t语法。都是太喜欢的东西。真的很不错。为了您看完可以交流评论下,所以小收5分。

2009-06-10

汇编编译器masm6.11

ms-dos下的汇编语言编译器。解压,安装,然后ms-dos下运行。不是IDE。

2009-03-11

poppler-data-0.1解决linux下pdf文档中中文字符乱码的问题

1.解压到/opt文件夹下面. 2.打开终端进入该目录. 3.运行命令:sudo make install datadir=/usr/share进行安装 4.over!

2009-01-19

三个文件io.h signal.h interrupt.h

网友要得三个文件io.h signal.h interrupt.h

2009-01-15

asuro_usb_rs232驱动

在windows下用于和ausro和yeti进行红外通信的usb驱动程序

2009-01-15

c和cpp常用函数手册查询

c和c++语言的函数手册和一些学习资料,因为现在用不着了,但是当时确实对自己帮助很大,所以就先放到这里。

2009-01-01

任何操作ads的资料

自己下载的两个ads操作需要的资料,因为最近没有时间看,而且硬盘太乱,所以暂时放到这里。

2009-01-01

小企鹅输入法fcitx安装包

小企鹅fcitx输入法的安装包,使用方法,解压,运行里面的安装和卸载脚本就可以。

2009-01-01

solaris用户手册

solaris用户手册 mht格式 应该是我从china-unix下载的

2008-12-31

郭天祥_十天学会单片机

郭天祥_十天学会单片机 幻灯片 课件 郭天祥_十天学会单片机 幻灯片 课件

2008-12-31

s3c2410完全开发流程及源代码

尚观的s3c2410开发手册和源代码,尚观的s3c2410开发手册和源代码

2008-12-31

linux内核调试技术

在我看linux设备驱动程序第4章调试技术的时候,一开始就遇到了问题,怎么在内核中开启调试选项,这本书帮我解决了。所以共享给同样遇到这样问题的朋友。也谢谢书的作者。

2008-12-25

w32coder linux下播放rmvb格式需要的解码器

linux下播放rmvb格式需要的解码器

2008-12-10

c++写的坦克大战,源代码+可执行文件

c++写的坦克大战源代码。可自定义地图,默认已包含10关

2008-12-10

自己写的一个编译用于linux2.6.x驱动模块编译和管理的makefile脚本

自己写的一个编译用于linux2.6.x驱动模块编译和管理的makefile脚本。

2008-09-26

星际译王辞典安装脚本

linux下星际译王的辞典包,内包含自己写的安装和卸载辞典的脚本。

2008-06-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除