|
本帖最后由 ywlzh 于 2016-5-2 23:15 编辑
自己买了个ARM9的开发板也有半年了,吃灰了几个月,这几天总感觉不能这样下去,买了那么多天了,总得跑起来呀!
开始一直苦恼于怎么入门,现在linux的版本那么多,到底选哪个学呀?现在想来,当时的问题只能表明自己真的不懂,现在好了,自己写的一个字符设备驱动程序跑起来,很正常,心里很舒服,或许这就是所谓的入门了吧。
今天偶然间得到了这本书,linux-0.11的内核注释,仿佛找到了当年看<<嵌入式实时操作系统μCOS-II原理及应用>>的感觉,虽然我现在stm32用的是ucosiii,但我入门的书就是这本书,珍惜自己入门的书。就好比我现在开发板用的是linux-2.6.35(ARM平台),但我相信,我看懂了linux-0.11这个源码,那开发起来就顺手了,这应该就是入门吧。
所以今天就在这分享出来
Linux 内核完全注释.pdf
(5.38 MB, 下载次数: 28)
有书没有源码怎么可以呢?
linux-0.11.rar
(196.08 KB, 下载次数: 26)
顺便提一句吧,怎么说这个入门的事呢?这样说吧,进入linux的开发,你得知道 linux的C函数库,知道这些,并且遇到一个就了解一个http://net.pku.edu.cn/~yhf/linux_c/
开发板到手了,最起码能自己写一个hello模块丢进去运行一下子,查一下内核日志看看出现hello world没?这应该就是入门吧。对于新手,切不可不耐烦,吃灰的几个月,我就是不耐烦的态度,单片机能搞得事,我先不用它,就是这种态度导致了它吃灰了好几个月,哎,真是浪费。确定了,这几个月好好疼它!
哈哈,屁话说的有点多了,不多说了,顺便分享一下自己现在一直用的几个makefile
我都是先在自己电脑上试一下,再到开发板去试的。后续要是用到GPIO,SPI,IIC...就只有在开发板上试了
- ARM 平台内核驱动的makefile
- obj-m := xxx.o (这个xxx.o对应相应的.c)
- PWD := $(shell pwd)
- KVER =2.6.35.3
- KDIR :=/home/ywlzh/linux-2.6.35.3 //此为已经build好的的linux源码树,要和自己的开发板的内核一致
- all:
- $(MAKE) -C $(KDIR) M=$(PWD) modules
- clean:
- $(MAKE) -C $(KDIR) M=$(PWD) clean
- X86平台的内核驱动的makefile
- obj-m:=xxx.o
- PWD:=$(shell pwd)
- CUR_PATH:=$(shell uname -r)
- KERNEL_PATH:=/usr/src/linux-headers-$(CUR_PATH)
- all:
- make -C $(KERNEL_PATH) M=$(PWD) modules
-
- clean:
- make -C $(KERNEL_PATH) M=$(PWD) clean
- ARM平台的测试程序的makefile
- EXEC = xxx
- OBJS = xxx.o
- CROSS = arm-fsl-linux-gnueabi- //自己装的交叉工具
- CC = $(CROSS)gcc
- STRIP = $(CROSS)strip
- CFLAGS = -Wall -g -O2
- all: clean $(EXEC)
- $(EXEC):$(OBJS)
- $(CC) $(CFLAGS) -o $@ $(OBJS)
- $(STRIP) $@
- clean:
- -rm -f $(EXEC) *.o
- X86平台的测试程序 只需要一个指令就足够了
- gcc xxx.c -o xxx
复制代码
|
|