我们的建议,关于第一个方向,撇开qt,了解GUI的工作原理,可以找一个相对简单的gui系统,稍微看下,但先不要钻的太深,除非你想很长时间做GUI的开发。回头可以尝试在硬件平台上移植下你所找的GUI系统;
关于第二,第三个方向,我们认为,做驱动开发是很有比较了解内核的设计概念的。别的且不去说,做内核驱动总要使用很多接口函数吧,那你要写驱动,必须得对这些接口有了解才行。了解的够多,你的驱动开发能力也就愈强,平时碰到个什么问题也就越容易定位和解决。
那为了了解这些接口,你必须去了解内核的设计策略,因为正是内核提供了这些接口给你用,所以你得在学习驱动开发的同时,留意内核设计策略的哲学。
幸运的是,你已经有51单片机的基础,这样对你学习驱动开发很有利,但重点是要掌握操作系统这一边的内容。关于如何学习,你可以看看这篇文章 《用结构化的方法来建模嵌入式Linux开发技术的学习过程》。记住别死拽着 qt 不放,没多少意思。
可以考虑嵌入式linux的方向,包括linux内核的裁剪、平台的移植、驱动的设计等等,而且应用广泛,平台支持丰富,基本上主流的处理器都支持,如arm,x86,ppc等等。对软硬件都是很好的锻炼。
你说的有点道理,但是我和你说把,你做应用的话,完全没学过内核,你说你能成为高手吗?
要成为嵌入式linux的高手,如果你要做的话,慢慢来。
和我大2时的情况差不多,你可以选择从驱动到内核学习方向,算是比较好的吧~从我工作的经历来看算是比较有前途的了。学习linux内核一般要从linux驱动开始入手,纯Qt开发先不说它的前途问题,就技术层面而言就比较浅,做一段时间后就很难再往深发展了。你可以专心学嵌入式linux驱动这个方向,从当前趋势来看ARm是必须要学的,可以:
(1)先学习下ARM基本体系结构(和单片机差不多,只是复杂了点),编些裸机程序,为以后驱动学习打下基础。
(2)如果你Unix(linx)系统编程还可以的话,这一步可以省略,但是基本的系统编程能力要有,配合以后驱动的学习。
(3)开始熟悉ARM linux交叉编译、内核移植(简单的)和简单的环境构建,这时不需要弄的太明白,主要是了解其流程。知道驱动到底是干嘛的,以及学会搭建基本的交叉开发环境。
(4)开始从字符驱动开始学习驱动吧,这里有好多让你入迷的技术,单从教材选择上可以这样:linux kernel development -> LDD_3(虽然有点过时)-> understanding linux kernel or linux kernel architecture -> 读源码吧~
别挑了,三个都得会,现在讲究全能……
选 linux开发吧 就是嵌入式开发方向 主要就是c基础和 linux下的编程 再看看高编什么的 你应该比较容易上手