ks8695x Demo板学习笔记20100613

买的英飞凌的板子迟迟没消息,没办法总不能什么都不做在这干等着。所以,从师父那翻出来以前他们做的一款路由的开发板,先拿来练练手,学习下。

板子拿到手上就被吓了一跳。他们做好的产品供电是12伏的,我也就理所当然的把Demo板当成了12伏供电。千辛万苦找来个接头合适的12伏Adapter。。。接上去,没反应,很安静,还是没反应。。。嘭的一声,从板子上connector旁边的电解电容上冒起一缕青烟。。。传说中的电解电容爆炸。虽然看起来没有多严重,但是着实吓了一跳,不知道是我运气好,还是传说中把这事穿太邪恶了,但是以后还是小心的好。不过还好,板子没烧掉。

电容爆掉之后,换了个100uF,50V的,原来那个事70uF,25V的。还不知道怎么选这个电容,先记下来吧。噢,电压要是供电电压的4~5倍。

板子貌似是国内一家公司仿的。micrel提供的操作手册说串口波特率是3840,结果试了半天发现是115200;TX和RX线是反的,拆了一根串口线重新改了下。。。而且不知道为何在tetra term里打印出来的是乱码,不过,用SecureCRT的打开没有乱码,暂时不去深究。

简单说下一些收获吧:

1、板子是用RamDisk作为主文件系统。就是把内核和文件系统编译成一个文件,将内核解压到Ram里面之后,挂载上Ramdisk。没有看到具体的实现步骤,还没找到。顺便说下,他们这套编译工具做的还是蛮方便的,如果不考虑下面怎么实现的话。它在最上层写了一个shell脚本,把很多事都省了,但是这样一来读它的整个实现过程就有些麻烦。

2、这块板子上的web-ui做的让我很惊讶。前面我做的mini_httpd+CGI,cgi程序总共有200多k,功能还没人加的多,人家的才60几K!(那个我做的第一个案子,理解下哈)大概看了下,他们是把url解码的函数和sysconfig编译成了动态库,这样剩下了很多空间。。。还有算法选择什么的,毕竟写的程序少。这个实现过程有必要好好再学习下。

3、router和switch功能的实现。看了半天,只找到一些ip_tables,DHCP之类的程序,还有一个sysconfig.conf文件(里面像是ip_tables的配置选项。还有其他一些类似选项,不知道是哪个程序的)。我猜想是系统启动后,他会有一个sysconfig的程式,来对各个软件来进行配置。而且,猜的没错的话,web-ui应该也只是修改sysconfig.conf文件里的一些选项。还不确定,一是没有发现有sysconfig这个程序,也没有读web-ui的cgi程序。所以,只知道他是用那几个程序+系统做的router和switch功能,具体怎么做的就不知道了,需要再看看。

4、再就是它的编译过程了,也是大开眼界。从上到下,每个文件夹里面一个Makefile,上层Makefile只负责确认工具和subdir是否存在。如果都存在的话,它就调用下层的Makefile。。。就这样一层层调用下去。还有发现linux内核的config过程一样,上层的Kconfig文件通过一句“source “ ***/Kconfig” ”将下层目录中Kconfig文件包含进去,然后一层层调用。所以,要在内核中加入某一块的话(比如,加入yaffs),只需在上层的目录(也就是/linux/fs/)的Kconfig文件里加入“source “yaffs/Kconfig" ”一句,同时在Makefile里加上“obj-$(CONFIG_YAFFS_FS)          += yaffs/”一句。看到别人的移植过程是这样,但是,我放我这边不行,不知道是不是还有其它限制,需要再看看了。

5、此外,内核里面还编译了jffs2,不知道是做什么用的。两个猜想,一个是只是负责读kernel启动以后剩余flash的读操作,完了之后,所有的程序都在ram中了,这样就用不到再对flash操作;另一个是,配合ramdisk,或者是VFS(不知道是哪一个),做swap,还有只有需要的程序才会被载入(不需要的留在flash上)。这个暂时不知道从何下手来看。

——————
无论在哪里做什么,只要坚持服务、创新、创造价值,其他的东西自然都会来的。
原文地址:https://www.cnblogs.com/pied/p/1757910.html