一、对于新手入门来说,下面哪种上手套路更正确:
1.仔细研究ARM启动过程,阅读uboot和kernel源码,理解硬件接口和驱动.
2.跑一遍uboot和kernel编译,不用理解其内容,然后在虚拟机里面进行c编程,使用arm-Linux-gcc编译和输出可执行文件,放到板子上运行.
3.不管怎么样,linux在板子上面跑起来就行了,然后使用QT或者python进行相对高级的编程,放在板上运行.
二、uboot,zImage,kernel等移植过程重要么?
这些东西,学起来很麻烦,至少我但现在没有遇到一本完整的讲的比较好的书,即便掌握了,我认为一块板子只需要一次移植,后面开发和这些没太大关系吧?不知道这样理解对不对?而且重点是,这些东西没有个集成开发环境,自己改改出了错也不知道如何debug.
对于初学者来说,千万不要一来就去移植内核或者UBOOT,这些东西,在整个LINUX开发过程中,只是很少一部分,或者说,对于做应用的人来讲,根本不用关心,只要会用就可以了,而且这一块的工作难度较大,需要长期的经验,像我们公司这样的平台方案提供商一般都会把这些东西做好,而且长期维护。
关于DEBUG,很多人认为在LINUX下,就是只能用printf做调试的,的确我们的同行很多也是这么做的,其实不然,在linux下,gdb是个好东西,可以用来单步调试内核,也可以用来单步调试uboot,操作方式与在keil下调试单片机的方法差不多,而且功能可能更强大,在我们的网站下载区,有一个LINUX下的图形界面调试工具,叫做insight,是一个gdb的图形端,很好用的,有兴趣可以学习一下,具体操作方法暂时没有时间写,网上能找到相关文章,如果你们再有时间,可以整理一下这个操作方法,写成心得,也是很好的!
三、前辈们看来,ARM+linux应该怎么做应用?
比如,用QT?至少QT有个开发环境,可以debug,我实在无法想像自己写个source.c然后自己编译链接..即便有make文件,感觉怎么都不方便,不知道真正做项目的时候,一般都是怎么做的?就愣用cpp写QT程序么?如果是这样,我觉得还不如winCE开发环境友好.
对于做LINUX的应用,QT是个好东西,免费又开源,IDE与Visual Studio类似,我们提供的虚拟机开发环境中,就有一个qtcreator,这就是QT的开发环境,配置好后可以直接在里边编译调试,也是由于精力有限,没有来得及写这方面的文档,我在这里给大家指明方向,大家就能在网上找到相应的文章,希望大家完善后,分离到论坛里。
四、python行不行?
不知道能不能把硬件接口到python解释器,用Tk做界面,额..查了下好像没人这么做.
关于python,在国外比较流行,我也有客户这样用了,肯定是可以运行在2416的,但是效果怎么样,我不清楚,我们还是建议直接用qt比较方便。
五、ARM+linux开发标准debug方法是什么?
交叉开发环境好像都是在虚拟机上面编译,放到板子上执行,那么如何debug呢?比如设置断点,看变量,这些功能没有不行啊
如我第一点所说,LINUX下调试可以用gdb,或者用insight,很方便的,我的开发板上有调试服务端gdbserver,虚拟机里也有insight的客户端,设断点,看变量,看寄存器都不在话下,好好去研究吧。
技术交流可以加黄工QQ2685896890
|