gerrardyan
小弟学习嵌入式有快3个月了,从一开始看开发板文档,学习一些基本的硬件知识,完成板子上的led灯控制,到外接面包板,自己利用矩阵led写了一个流动文字的控制器。然后进入到linux,在驱动的基础上首先自己写一些打印文字,画滚动条之类的库,通过lcd液晶屏以及触摸屏驱动实现了一个类似资源管理器的应用,可以在lcd上察看文件树形目录,展开和关闭文件夹。
现在又打算写一个类似桌面的程序,读取文件,在桌面上显示应用程序的图标和名称,双击图标打开应用程序。
忙活了那么久,也没有人教,都是一大堆的文档资料,自己慢慢翻,慢慢看,常常解决一个问题所花的时间比预计的多得多,常常几天都为了一个问题团团转,有时候一天下来,觉得自己什么都没有做,常常很郁闷,很受打击,但是一旦解决一个问题,又常常十分的有成就感。
小弟也深知嵌入式需要越挫越勇,但是很多东西不像普通的application开发,一上网就能找到相应的资料,常常走很多弯路,而且没有人指导的话,经常为一个问题花太多的时间。
有时候真的想走出来,又觉得都学了很久了放弃有点可惜,各位大虾,学习嵌入式如何越挫越勇?!
joyself
看你的方向,其实在嵌入式Linux下写应用程序跟PC上写应用程序区别倒不是很大。
毕竟你也知道,所谓的嵌入式Linux还不是标准的Linux kernel(kernel.org)再加上一些针对于特定板子的patch。
而在user space上的东西几乎没什么区别。所以得先脱下“嵌入式”这个光环。
我来说说为什么很多人都建议你买块板子做练习。
通常来说一块通用板子(可能已经注意到国内最多的板子都是基于samsung的s3c系列,原intel的pxa的也不少)。
原因有很多。
1)选择用得比较广泛的ARM芯片,遇到问题,到论坛上提问容易得到解决。
2)通常你买板子的时候,板子提供商会同时提供 该chip的datasheet,外设芯片的datasheet,板子的schematic就是板子电路图。
Linux BSP或者WinCE BSP。这样的话资料就基本上差不多了。
3)如2)所说,板子提供商提供的缺省BSP是可以运行的,你可以在上面做一些修改(比如针对某个驱动)。
然后根据板子提供商提供的交叉编译环境 进行编译,重新放到板子上调试。
所以我有个两个提议
1)如果你将买的板子不能跑Linux或者WinCE,本身chip的功能少;或者板子提供商不提供全套资料。
可以把该板子(和板子提供商)抛弃。
2)确定主攻方向,即使是驱动部分,也不是一朝半日就能完全搞通,一半是从简单的驱动慢慢扩散。
比如简单的从字符设备驱动开始,然后网络设备驱动,然后块设备驱动。 你可以根据兴趣,选择
如串口驱动,RTC驱动,LCD驱动,MMC/SD驱动,USB驱动。。。。。
现在网上关于这些驱动的分析也已很多了。 看驱动先看驱动模型,了解大概,再看具体实现。