摘要:
转自http://hi.baidu.com/mynana/blog/item/1da1ba99239ceb006f068c48.htmllist_entry宏是用来根据list_head指针查找链表所嵌入的结构体的地址,具体实现是依赖宏container_of:#define list_entry(ptr, type, member) container_of(ptr, type, member)container_of的定义如下: 1 /** 2 * container_of - cast a member of a structure out to the containing stru. 阅读全文
摘要:
每个进程都有两个影响其调度的值:第一个是动态值,内核经常更改这个值,也就是ps -l命令里的pri值第二个是静态值,只是偶尔被用户手工更改,即ps -l里的ni值。对任何进程而言,ni这个值可以从-20到19不等,其中数值越小优先级越高,数值越大优先级越低,-20的优先级最高,19的优先级最低,需要注意的是普通用户只能在0~19之间调整应用程序的优先权值,只有超级用户有权调整更高的优先权值(从-20~19)。PRI即进程的优先级,此值越小进程的优先级别越高。而NI,也就是我们所要说的nice值(通过nice命令设置),其表示进程可被执行的优先级的修正数值。如前面所说,PRI值越小越快被执行,那 阅读全文
摘要:
一、GPIO基本知识GPIO的主要寄存器有 3个 DR GDIR PSR还有ICR1,ICR2,IMR,ISR 是GPIO的中断用寄存器,因为我目前没有使用,就不多说了。DR :数据读写寄存器,通过该寄存器控制对应GPIO的高低电平,或者读入GPIO的电平状态。GDIR:通知GPIO是通知于输出模式还是输入模式,0 GPIO is configured as input. 对应的位设置为0 则为输入1 GPIO is configured as output. 对应的位设置为1 则为输出如果对应的引脚设置为GPIO模式当GDIR设置为输入时,读DR寄存器,则返回引脚的电平状态当GDIR设置为输 阅读全文
摘要:
由汇编代码跳转到C代码,假定当前目录为uboot的根目录。C代码首先会执行lib_arm/board.c中的start_armboot函数。在此函数中执行一些初始化的过程,当执行到stdio_init ()函数时将跳转到common/stdio.c中。执行到drv_lcd_init ()函数时跳转带common/lcd.c中,lcd.c实现了一些lcd的通用方法。接着,此函数执行到lcd_enable ()函数,然后跳转到board/freescale/mx51_bbg/mx51_bbg.c中的lcd_enable ()中进行lcd的GPIO初始化配置。 阅读全文
摘要:
每个Makefile中都应该写一个清空目标文件(.o和执行文件)的规则,这不仅便于重编译,也很利于保持文件的清洁。一般的风格都是:1 clean:2 rm edit $(objects)clean从来都是放在文件的最后,更为稳健的做法是:1 .PHONY : clean2 clean :3 -rm edit $(objects)//rm命令前面加了一个小减号的意思就是,也许某些文件出现问题,但不要管,继续做后面的事。 阅读全文
摘要:
接第一篇,我们可以在makefile中声明变量来替代重复的内容。比如:objects = main.o kbd.o command.o display.o \insert.o search.o files.o utils.o我们就可以很方便地在我们的makefile中以“$(objects)”的方式来使用这个变量了,于是我们的改良版makefile就变成下面这个样子:1 objects = main.o kbd.o command.o display.o \2 insert.o search.o files.o utils.o3 edit : $(objects)4 cc -o edit $( 阅读全文
摘要:
Makefile的一般格式如下:target ... : prerequisites ...command其中target为目标文件,可以是Objectfile或者可执行文件,还可以是一个label。prerequisite为生成target所需的文件。command为make所执行的命令。插入一段示例代码: 1 edit : main.o kbd.o command.o display.o \ 2 insert.o search.o files.o utils.o 3 cc -o edit main.o kbd.o command.o display.o \ 4 insert.o searc 阅读全文
摘要:
如何更改Uboot的启动logo:1、进入tools目录,在该目录下你会看到一个叫logos的目录,里面存的是logo图标,可以自己添加logo图标到该目录,注意需256色的。2、打开tools目录下的Makefile文件,在第44行至48行间,有如下一段代码:ifeq ($(LOGO_BMP),)LOGO_BMP= logos/denx.bmpendififeq ($(VENDOR),denx)LOGO_BMP= logos/denx.bmp3、"denx.bmp"即为logo图标。你可以用你自己喜欢的图标来代替他,,4、在common目录下,打开lcd.c文件,可以改变 阅读全文
摘要:
具体操作步骤:先找到keystore (解释:是一个密码保护的文件,用来存储密钥和证书。),运行Eclipse,打开Preferences对话框,在Android-> build中可以看到Keystore的存放路径:例如:C:\Documents and Settings\×××\Local Settings\Application Data\Android\debug.keystore启动Command Prompt. 使用Keytool命令(keytool.exe存放在Java/bin目录下)。完整的命令行:>keytool -list -alia 阅读全文
摘要:
linux分支的不同使用起来还是有很多差别的,最近想用一下比较流行的ubuntu,发现安装ROR还是有些细微的区别,那么挨着说吧。1. 安装ruby1.9.2下载链接:http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p0.tar.bz2引用 (1)tar jxvf ruby-1.9.2-p0.tar.bz2 (2)cd ruby-1.9.2-p0 (3)./configure –prefix=/usr/local/ruby (4)make (5)make test (6)sudo make install设置环境变量:由于ubuntu10.0. 阅读全文