linux 手记
酝酿许久的手记终于面世了,希望高手多多指点。从7月到现在,我参与的产品的研发,也算告一段落,明天就是成都的医博会了,这几个月慢慢啃出来的东西,要好好的总结一下,大学的时候,玩的是单片机,arm裸机,对于系统有所了解,做过一些小实验,但是没有系统的学习,如今做的事情,让我对嵌入式linux的认识也更正了许多。在此做个手记。
以前一直认为,要做linux,就得安装真机的linux系统,就像“不下水的人,永远也不能真正学会游泳”一样。但是虚拟机很方便,安装好系统后,做个备份,在安装其他东西,系统崩溃了
删除就是了。
现在重头开始慢慢理一下思路,以前学习用的zlg2410的资料我还有,但是那是试验教材用的资料,在具体应用中就很麻烦。万事开头难,公司用了一个10.4寸的lcd屏,是vga接口的郁闷死我的事情是:买这个屏的时候,对方提供了一个驱动原文件以及全英文的使用文档,这个屏是 TouchScreen: egalax TouchScreen (USB触摸驱动)。怎么也得先触摸显示了,才有其他程序开发的事撒,于是,我就开始看文档,编译他的usb触摸屏驱动,我看文档的时候,感觉到这个触摸屏在我的开发板上用有问题,但是如果我连驱动文件.ko都编译不出来,我想还是值得花点时间研究这个usb的触摸屏,其实这里我出了有一个基本问题的错误,文档里面已经说明了是基于X11的,而qte显示是基于framebuffer的,我花了一周多的时间看usb的驱动的编译以及移植,期望他能在我的目标板上能够触摸,这个屏的驱动文件,需要在2.6的linux内核下编译,菜鸟真的很苦的啊。。我又开始开始琢磨起2.6内核和2.4的内核的驱动开发的问题。首先想到的是usb驱动设备的开发环境以及移植,参看Macheal 分享的一篇《构建嵌入式驱动开发编译环境》的文字和loveuzz的《嵌入式平台USB驱动程序移植(zc0301p 摄像头)》,对内核一些列配置选择以后,在内核源码的目录下执行:
# make
# make bzImage
其中,第一个make也可以不执行,直接make bzImage。这个过程可能要持续一个小时左右,因此是对整个内核重新编译了。执行结束后,可以看到在当前目录下生成了一个新的文件: vmlinux, 其属性为-rwxr-xr-x。 然后执行:
# touch * // 时间或时区设置,源代码的时间戳比本机的时间更新,否则产生:make[2]: 警告:检测到时钟错误。您的创建可能是不完整的。
# make modules 对内核的所有模块进行编译
# make modules_install 对内
相关文档:
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
1.一次开机,郁闷,发现~目录下有一个长文件名的乱码文件,怎么删都删不掉,目录也不能删。最后想了一个笨方法删掉了
先在该目录下mkdir zz 然后 mv *.* zz OK,然后rm -rf zz文件夹就行了。呵呵 ......
刚开始学Linux,看到那些纷繁复杂的目录真是感觉有点手足无措,现在总算知道自己的软件应该装在/usr目录下,呵呵~~
下面是各个目录的说明:
/bin
该目录中存放Linux的常用命令,在有的版本中是一些和根目录下相同的目录。
/boot
该目录下存放的都是系统启动时要用到的程序,当用lilo引导Linux时,会用到这 ......
对于hci层的编程 是相当复杂的 功能也是强大的,建议学习者 去读bluez-lib中的hci和sdp
这里简要介绍 我在开发公司的项目中的 一个小的基础动作. 该编程的过程基本理清了hci和sdp的衔接和应用.希望对学习者有帮助
说明有不到之处,望大家多多研究,不要局限,每个人有自己的方式,也许你的在逻辑算法上比我的好! ......
(八)创新篇
Linux是自由软件,而自由软件和非自由软的区别在于:
1. 自由软件是开放的,成千上万的人可以检查这个软件,快速地找到并修改其错误码。
2. 最终用户可以按照自己的意愿自定义自由软件,有特殊需要的用户也可以完全按照他们认为合适的方式定制自己的Linux。
3. 自由软 ......