ARM从零基础到入门--告诉你这10天我都做了些什么--小白历险记--ARM之旅
2014-03-23 09:30
302 查看
如果你只懂得linux,知道它有一个终端,而且只知道两个命令,cd和ls,那恭喜你,你看这个文章的时候和我最开始做这个ARM的东西的时候基础差不多。
如果你想学学ARM,但是不知道中间会遇到什么问题,要怎么办?那也恭喜你,这边文章很可能会有你以后遇到的问题的情况
如果你想知道具体问题怎么解决,那还是恭喜你,这篇文章一点都没说,然后你可能会问,那这篇文章有什么用?我告诉你,多动手,多动脑,脸厚,心黑就能让你在10天学会怎么ARM开发。
其实写这篇文章就想让大家看看,即使咱们很笨,只要花心思,还是可以学会东西的。或许你比我聪明,都不会遇到下面的问题,如果你觉得自己不聪明,那可以往下看看,毕竟我花了一天写这玩意。不求给你带来什么实质的东西,博君一笑总可以吧。
苦逼的我不是学计算机出生的,以前玩linux都是冲着玩那华丽丽的特效,以及可以在女生面前装B才玩的,最近让我写一个ARM平台上的程序,苦了我。。
期间各种被鄙视。
“你知道串口么?。。不知道你还做个毛”
“你懂交叉编译么?。。。。不知道你搞个屁”
“你要弄一下驱动?。。。。什么,驱动都不懂。。我服了你了”
…………
……
然后就这样,买了一块开发板,然后各种崩溃,各种抓狂。现在还是什么都不懂,只能说点皮毛的。。
废话说的很多(我就喜欢说废话),接下来转入正题:开始做开发,这边说说我做的过程,看看如何在什么都不明白的情况下跌跌撞撞。
plaincopy
买回板子的第一天,看着很牛逼,马上通电看板子上面有什么,然后看到了很多很”炫“的程序。再看看给的配置:一个串口线(问了别人才知道是什么的,以前一直以为是VGA的线)还有其他杂七杂八的东西。
然后去电脑上找插口,找了半天没找到插哪里,然后被鄙视,
朋友:“要用USB转串口“(我用的是笔记本)
我:“原来如此……”。
然后总算插上电脑了。
接着迷糊了,怎么电脑没反映?
问人。。第二次被鄙视,
朋友:“哥,你装个minicom啊,不然怎么可以!”
我:“什么是minicom?”
朋友:“minicom就是minicom……%¥……%”
我:“……”
还是问度娘吧。度娘了一下minicom是什么东西,就去装起了。
接下来又迷糊了,我怎么传自己的程序过去?接着又被鄙视
朋友:“ftp啊,亏你是学网络的。。”
我:“操,老子学的是协议,又不是应用程序…………!¥#&%”
然后度娘半天ftp,没学会,让他过来教我,然后朋友华丽丽的一堆操作(后来证明也没那么复杂),中间各种小白问题,各种鄙视,还好我脸皮厚,熬过来了。
最后自己就操作了一遍。
就这样,第一天就在学这些东西的过程中过去了
plaincopy
重整旗鼓,准备做开发,要做一个东西,第一反映就是做一个hello world 程序过去
打开电脑,插上板子,然后传了一个自己写的hello world 过去,运行。。。。。操,一个提示:not found。。。。顿时无语,这啥玩意提示。
接着找人,又一顿鄙视
朋友:“你编译的是电脑上面的程序,放到ARM上怎么可能跑,就像电脑上面的程序用到手机上肯定不行嘛……”
我:乖乖认错吧,然后问怎么解决。
朋友:“要用到交叉编译工具”
我:什么是交叉编译工具?
朋友:“擦,这个都不懂,你还搞什么?#¥%……¥@”
然后乖乖问度娘,大搞弄懂了,我:“我懂什么交叉编译工具,怎么装?”
朋友:”光盘上面有,你怎么都不看看¥%¥……¥……“
我:”……“
然后乖乖看视频,然后找到光盘下面的交叉编译工具,开始照着做。。。顺便说一句,一开始小白,弄了两个版本的交叉编译工具,3.4.5和4.3.3的,这时候没注意这两个的区别,后面就吃苦头了。
然后第二天就弄明白这些就过去了
plaincopy
不能再被鄙视了,所以这天有什么问题我先问度娘,实在不行了再问别人。嘎嘎。
然后看了一堆视频,讲的是什么bootloader,uboot,qtopia……,反正云里雾里,对着安装就好了,板子上面不敢动,就整电脑上面的吧,整点什么好咧?
就qtopia吧,这个以后要用到,而且视频上面说的很神的感觉(现在感觉这玩意要不要无所谓,和我做的东西一点关系都没有)
开始整。
第一次编译就出问题了,为什么我知道出问题了,因为看视频的时候有讲到。
出现的问题不一样?
没关系,问度娘啊。
中间各种苦逼,记不清当时吃的苦了,反正比苦草要苦,中间还被各种鄙视,最后朋友又是一堆华丽丽的操作,总算整成功了。
晚上睡觉前,突然想起来那个hello world程序还没跑成功。但是对自己信心满满,感觉自己有一定基础了,应该木有问题了。
plaincopy
(操,写了半天没了,重新写)
第四天,用arm-linux-gcc编译了第一个arm下的hello world程序,然后又是那个可恶的错误:not found,你妹啊,就不能有些新意么!!
或许有人说问,为什么不照手册上面的做一做咧?个人认为如果一个hello world 都不行,那个上面的肯定也不行,然后我就动手实践了一下,果然不行!!
被鄙视多了,也会觉得难受是吧。所以这天打死不问别人。
然后问度娘吧,结果度娘这天大姨妈来了,各种不行。。。果断抓狂了(其实是我什么都不懂,搜的方式有问题,结果没找到相关答案)。
这样郁闷了一天,晚上2点上床,最后一次问度娘,度娘告诉我,为什么不试一试静态编译呢?然后各种兴奋,折腾了半夜,第二天早早的去了
plaincopy
编译hello world的时候加入了-stable静态编译了,然后放到板子上一跑,果断木有问题,兴奋了,我找到答案了(晓得的人看这里肯定要笑了,这肯定是不行的,后来我会发现这边的问题的。)
接着就试着照手册的做,然后一看傻眼了,用的是Makefile,怎么改Makefile啊?
问人?还是不问?算了,还是被鄙视一下吧。。
朋友:“送的板子上面有讲Makefile,你去看看吧”(居然没鄙视我)
然后看视频,然后表情渐变,最后大骂,我操,还是没看懂怎么改Makefile。还是继续被鄙视吧
朋友:“我也不会……”
我:“……,那怎么整?”
朋友:“没见过编程序是用静态编译的啊”
我:“那就都是动态编译的?那怎么跑起来的”
朋友:“动态链接库啊”
我:“哦……”
然后问度娘。。不过没怎么看懂。。
第五天就这样在浑浑噩噩中度过了
plaincopy
做什么都没干劲,视频不想看了,看了也不懂,程序也不想写了(我有写程序么),然后上ACFUN看文章,上BILIBILI看视频。
调整好了心情(这也算学ARM?! 当然算了,周末不得休息啊)
plaincopy
继续整我的Makefile,是不是因为我没链接上库?
度娘又他妈大姨妈。。。。。。
问人吧,平复好心情,厚着脸皮去问了,然后朋友一堆华丽丽(我形容词就只有这么多)的操作,结果证明是不行的,折腾半天没搞定。
朋友:“你的思路有问题,不是这样来的,你要用的是Qt编程,建议你去看看Qt”
我:“什么是Qt?貌似听过啊”
朋友:“你qtopia都整了,还不知道Qt是什么,你有没有看视频啊!”
我:“看了,可能是我忽略了吧”
朋友:“……”
然后果断查qtopia,最后发觉Qt它不是qtopia。。。。。
不管了,先装Qt吧。已经开始混乱了,我都不知道自己在做什么了。问朋友Qt看什么书好?
朋友:“……”
好吧,我问度娘,然后买了2本书回来,开始啃
plaincopy
Qt啃了大概有1个月(事实证明这玩意在ARM开发上必须用到,但是那个已经是在做开发了,和原来做的东西一点关系没有,我要的是把两边的环境给弄好,然后才能说开始开发。但是弯路已经走了,后悔也来不及了),为什么还是第7天呢,因为这一个月我除了弄明白怎么写一个Qt程序,和ARM一点关系都木有,所以不算学ARM的过程了。
回来继续说,为什么不继续啃Qt了,因为经过一个月的折磨,我有了长足的“进步”,因为我熟悉了linux环境下的编程特点。
弄明白了什么是动态库,什么是动态库,可执行文件的构成……中间鄙视次数没法数了。说出来自己都觉得可怜。。。
这段时间基本就是在熟悉linux下的各种环境问题,之间还系统崩溃过一次,幸好后来找人抢救回来了。但是收获还是不少的。
比如:
在linux下可执行文件是ELF格式的,可以使用file <文件名>查看信息
ELF文件里面分成各种段,什么代码段,什么数据段等等
PC端的程序,可以使用ldd命令查看ELF使用的链接库信息
ARM编译的程序,可以使用arm-linux-readlef -d 查询。
在编译过程中需要注意各种环境变量,以及如何修改这些环境变量,很多细节没法说了,有空写个文说一下。
了解了linux根目录下的目录结构,和一些常用的文件位置。
什么是NFS,如何挂载NFS(虽然至今没挂载成功)
……还有很多很多,有的都想不起来了,有空了整理一下吧
上面是废话,第七天我在干嘛,哥告诉你,我在整NFS。
然后结果怎么样? 答: 板子黑屏了,我不知道怎么改回来。
怎么解决的? 答:还能怎么样。问度娘呗
解决了么? 答:没有
那打算怎么办? 答:睡觉去了。(我已经麻木了,有问题也懒得想了)
plaincopy
其实也就是4月19号那天了。懒得想问题了,找人。
我:“救命!板子罢工了”
朋友:“格式化,重装”
我:“哦?好的”
然后格式化(很顺利),重装?怎么整,电脑重装还是会的,ARM上怎么整?
用minicom?整了半天不行。被看到了。主动过来鄙视
朋友:“哥,你连个dnw都没有,怎么可能行”
我:“啊?dnw?”
果断度娘,然后找了一个linux下的dnw,但是怎么整都不对。果断放弃,准备换到window下整
没有驱动?网上下!(我用的是win7)
没有dnw?网上下!啊!不,光盘里面有
还要整什么?sourcecrt!网上下。
不会配置?一个个试。不行问度娘
经过一个中午的奋战,总算把准备工作弄好了,
然后重装系统是要装?!不懂啊,我鬼知道要装什么。。。
最后发现光盘里面有相关的资料,以前在linux下这些文件是乱码的,从来没看过,结果到今天才发现里面说的是什么,哭…………怎么不早点想到呢
根据步骤一步步安装(其实是朋友在帮忙装,我在旁边看着的,之后我自己又重装了一次)就好了。
因为送的光盘有很多已经那个编译好的了,所以免去不少时间,那些东西现在还是浮云,等有空了再弄!
内核?选2.6.30的
文件系统?操,看了一个月的Qt,所以无悬念选了Qt4.5
整完这些,差不多一天又过去了。
plaincopy
前天弄好了ARM板子上的东西,虽然装的过程很简单,但是很多东西一下子冲进了脑袋瓜子,版本这个词在我脑海中不断盘旋。
以前不对是不是因为两边的版本不一样,结果不行? 然后果断找光盘,发现里面有arm-qt-4.5的源码包,拷过来,然后傻瓜安装(为什么是傻瓜安装)。因为厂商已经写好了脚本了,运行下就可以了,不过中间还是遇到问题,不过经过一个月的洗礼,这点问题还是难不到我的。秒秒钟解决。
然后修改环境变量,编译程序
OH,耶,编译成功了。很傻瓜的操作。
然后检查:两本qt版本都对了,在板子上也有了对应的链接库。应该没有问题了吧!!
或许你也猜的到结果怎么样,还是那个老错误:not found。
啊,崩溃了。。。。我已经没办法了。
事实证明有时候只要再坚持一下就有可能有转机,然后我冥思苦想,在消耗了一桶卷纸时,突然想到,qt库的版本能是对的,那内核的咧?
然后果断用file命令查了一下编译出来的程序,发现是2.4.3的,而从板子上传过来的一个可以运行的版本是2.6.13的。看来原因就是在这里了啊。
问题接囧(错字?no,后面的很囧)而来。
后面就没想别的了,继续浪费纸了。。
plaincopy
也就是昨天,到底哪里出问题了,首先,试着用arm-linux-gcc编译了一个自己的程序,发现版本是2.6.14的。结果用qt做出来就是2.4.3的
找了很多资料,找到一个最靠谱的就是,让我改qmake.config,把里面的交叉编译工具改一下,感觉应该就是这个问题了
结果很悲剧,编译的时候报错了,而且这个错误找了一天没找到。
晚上的时候无意间发现,在普通用户下我的arm-linux-gcc是4.3.3版本的,但是在超级用户下就变成3.4.5的了,难道是这个原因?感觉不对,因为我改了qmake.confog了
晚上睡觉前整理了一下自己的问题,发了人生中第一个问题贴。还把自己的思路给写出来了,结果没人回答。唉。。。。
半夜突然想到有可能是因为我编译电脑上的qt的时候用的就是3.4.5,这样自然而然就错了。所以连夜重新编译了一次qt。
plaincopy
这天不算学习ARM,早上起来把新整的程序放板子上跑了一下,成功了。至此,一个艰辛的学习过程总算告一段落了。现在两边基本都能搞定。
最重要的就是知道了怎么去查找问题错在哪里,花了一天时间写这些东西。就想发个牢骚,说说自己最近的苦逼生活。
如果你想学学ARM,但是不知道中间会遇到什么问题,要怎么办?那也恭喜你,这边文章很可能会有你以后遇到的问题的情况
如果你想知道具体问题怎么解决,那还是恭喜你,这篇文章一点都没说,然后你可能会问,那这篇文章有什么用?我告诉你,多动手,多动脑,脸厚,心黑就能让你在10天学会怎么ARM开发。
其实写这篇文章就想让大家看看,即使咱们很笨,只要花心思,还是可以学会东西的。或许你比我聪明,都不会遇到下面的问题,如果你觉得自己不聪明,那可以往下看看,毕竟我花了一天写这玩意。不求给你带来什么实质的东西,博君一笑总可以吧。
苦逼的我不是学计算机出生的,以前玩linux都是冲着玩那华丽丽的特效,以及可以在女生面前装B才玩的,最近让我写一个ARM平台上的程序,苦了我。。
期间各种被鄙视。
“你知道串口么?。。不知道你还做个毛”
“你懂交叉编译么?。。。。不知道你搞个屁”
“你要弄一下驱动?。。。。什么,驱动都不懂。。我服了你了”
…………
……
然后就这样,买了一块开发板,然后各种崩溃,各种抓狂。现在还是什么都不懂,只能说点皮毛的。。
心得一、版本很重要
一开始没有注意到这个,结果各种抓狂,要么无法编译,要么编译了不能跑,这个下文慢慢解释心得二、环境变量很重要
一开是连什么是环境变量都不懂(现在也只是迷迷糊糊有个概念),然后各种悲剧,弯路多多,所以不行的时候看看是不是这些变量设置有问题,下文慢慢讲我遇到的问题。心得三、脸皮厚不厚很重要
一直扯不下脸皮问人,结果很多东西都是迷迷糊糊中给解决的,弄出来后和别人一说,结果立刻被鄙视“你居然不知道这个……”,,所以早晚都要被鄙视,不如一开始就被鄙视。心得四、如果可以的话,千万别像我下面写的那样去做,只有我这样笨的人才会花这么久学这东西
接下来,讲讲我一开始做的时候遇到的一些担心的问题。问:我需要看什么书?
答:我也不知道,买了什么的板子,就看他给的手册,找了一些ARM的书,感觉讲的都一样,所以到现在还没觉得什么书特别好的。尤其一点是,每个人做的时候都会遇到各种稀奇古怪的问题,这玩意没有哪本书会给你讲出来,所以个人感觉看书不如遇到问题了跑了去问人,然后去买的开发板的论坛上去问。这样来的实在一些。问:买来的板子配了十几个光盘,几百个视频,什么时候才能看完啊,而且看完了就忘记了。
答:我也挨着看了很多,结果发觉很多用不上,个人认为,首先先自己弄出一次成功的实例后再看视频,可以加深理解,而且到时候看起来要快很多。或者一遍看视频一边做。问:开发手册看得云里雾里,无从下手,怎么办?
答:我也一样,而且给的手册乱七八糟,也不知道先看哪个,这只能等自己成功做出几次后就会知道怎么看这些手册了,所以一开是就是一个痛苦的过程,忍一忍吧,过了前期就好受多了。问:我按照手册上的步骤做了,但是遇到各种问题,就是不成功,怎么办?
答:这就对了,开发难的就是遇到这些问题,只能自己慢慢思考,总结经验了,一般错误都可以归结为”环境变量“错误、”版本“错误、”缺少必要依赖关系“错误,当然还有一些其他错误,有时候需要去改源代码,这些错误只能认真看编译过程中给的信息,如果看的懂,就知道怎么改,看不懂,恭喜你,问度娘吧,如果度娘也不知道,我也没招了,一般就是推到重新来几下。废话说的很多(我就喜欢说废话),接下来转入正题:开始做开发,这边说说我做的过程,看看如何在什么都不明白的情况下跌跌撞撞。
第一天:
[html] viewplaincopy
买回板子的第一天,看着很牛逼,马上通电看板子上面有什么,然后看到了很多很”炫“的程序。再看看给的配置:一个串口线(问了别人才知道是什么的,以前一直以为是VGA的线)还有其他杂七杂八的东西。
然后去电脑上找插口,找了半天没找到插哪里,然后被鄙视,
朋友:“要用USB转串口“(我用的是笔记本)
我:“原来如此……”。
然后总算插上电脑了。
接着迷糊了,怎么电脑没反映?
问人。。第二次被鄙视,
朋友:“哥,你装个minicom啊,不然怎么可以!”
我:“什么是minicom?”
朋友:“minicom就是minicom……%¥……%”
我:“……”
还是问度娘吧。度娘了一下minicom是什么东西,就去装起了。
接下来又迷糊了,我怎么传自己的程序过去?接着又被鄙视
朋友:“ftp啊,亏你是学网络的。。”
我:“操,老子学的是协议,又不是应用程序…………!¥#&%”
然后度娘半天ftp,没学会,让他过来教我,然后朋友华丽丽的一堆操作(后来证明也没那么复杂),中间各种小白问题,各种鄙视,还好我脸皮厚,熬过来了。
最后自己就操作了一遍。
就这样,第一天就在学这些东西的过程中过去了
第二天:
[html] viewplaincopy
重整旗鼓,准备做开发,要做一个东西,第一反映就是做一个hello world 程序过去
打开电脑,插上板子,然后传了一个自己写的hello world 过去,运行。。。。。操,一个提示:not found。。。。顿时无语,这啥玩意提示。
接着找人,又一顿鄙视
朋友:“你编译的是电脑上面的程序,放到ARM上怎么可能跑,就像电脑上面的程序用到手机上肯定不行嘛……”
我:乖乖认错吧,然后问怎么解决。
朋友:“要用到交叉编译工具”
我:什么是交叉编译工具?
朋友:“擦,这个都不懂,你还搞什么?#¥%……¥@”
然后乖乖问度娘,大搞弄懂了,我:“我懂什么交叉编译工具,怎么装?”
朋友:”光盘上面有,你怎么都不看看¥%¥……¥……“
我:”……“
然后乖乖看视频,然后找到光盘下面的交叉编译工具,开始照着做。。。顺便说一句,一开始小白,弄了两个版本的交叉编译工具,3.4.5和4.3.3的,这时候没注意这两个的区别,后面就吃苦头了。
然后第二天就弄明白这些就过去了
第三天:
[html] viewplaincopy
不能再被鄙视了,所以这天有什么问题我先问度娘,实在不行了再问别人。嘎嘎。
然后看了一堆视频,讲的是什么bootloader,uboot,qtopia……,反正云里雾里,对着安装就好了,板子上面不敢动,就整电脑上面的吧,整点什么好咧?
就qtopia吧,这个以后要用到,而且视频上面说的很神的感觉(现在感觉这玩意要不要无所谓,和我做的东西一点关系都没有)
开始整。
第一次编译就出问题了,为什么我知道出问题了,因为看视频的时候有讲到。
出现的问题不一样?
没关系,问度娘啊。
中间各种苦逼,记不清当时吃的苦了,反正比苦草要苦,中间还被各种鄙视,最后朋友又是一堆华丽丽的操作,总算整成功了。
晚上睡觉前,突然想起来那个hello world程序还没跑成功。但是对自己信心满满,感觉自己有一定基础了,应该木有问题了。
第四天:
[html] viewplaincopy
(操,写了半天没了,重新写)
第四天,用arm-linux-gcc编译了第一个arm下的hello world程序,然后又是那个可恶的错误:not found,你妹啊,就不能有些新意么!!
或许有人说问,为什么不照手册上面的做一做咧?个人认为如果一个hello world 都不行,那个上面的肯定也不行,然后我就动手实践了一下,果然不行!!
被鄙视多了,也会觉得难受是吧。所以这天打死不问别人。
然后问度娘吧,结果度娘这天大姨妈来了,各种不行。。。果断抓狂了(其实是我什么都不懂,搜的方式有问题,结果没找到相关答案)。
这样郁闷了一天,晚上2点上床,最后一次问度娘,度娘告诉我,为什么不试一试静态编译呢?然后各种兴奋,折腾了半夜,第二天早早的去了
第五天:
[html] viewplaincopy
编译hello world的时候加入了-stable静态编译了,然后放到板子上一跑,果断木有问题,兴奋了,我找到答案了(晓得的人看这里肯定要笑了,这肯定是不行的,后来我会发现这边的问题的。)
接着就试着照手册的做,然后一看傻眼了,用的是Makefile,怎么改Makefile啊?
问人?还是不问?算了,还是被鄙视一下吧。。
朋友:“送的板子上面有讲Makefile,你去看看吧”(居然没鄙视我)
然后看视频,然后表情渐变,最后大骂,我操,还是没看懂怎么改Makefile。还是继续被鄙视吧
朋友:“我也不会……”
我:“……,那怎么整?”
朋友:“没见过编程序是用静态编译的啊”
我:“那就都是动态编译的?那怎么跑起来的”
朋友:“动态链接库啊”
我:“哦……”
然后问度娘。。不过没怎么看懂。。
第五天就这样在浑浑噩噩中度过了
第六天:
[html] viewplaincopy
做什么都没干劲,视频不想看了,看了也不懂,程序也不想写了(我有写程序么),然后上ACFUN看文章,上BILIBILI看视频。
调整好了心情(这也算学ARM?! 当然算了,周末不得休息啊)
第七天:
[html] viewplaincopy
继续整我的Makefile,是不是因为我没链接上库?
度娘又他妈大姨妈。。。。。。
问人吧,平复好心情,厚着脸皮去问了,然后朋友一堆华丽丽(我形容词就只有这么多)的操作,结果证明是不行的,折腾半天没搞定。
朋友:“你的思路有问题,不是这样来的,你要用的是Qt编程,建议你去看看Qt”
我:“什么是Qt?貌似听过啊”
朋友:“你qtopia都整了,还不知道Qt是什么,你有没有看视频啊!”
我:“看了,可能是我忽略了吧”
朋友:“……”
然后果断查qtopia,最后发觉Qt它不是qtopia。。。。。
不管了,先装Qt吧。已经开始混乱了,我都不知道自己在做什么了。问朋友Qt看什么书好?
朋友:“……”
好吧,我问度娘,然后买了2本书回来,开始啃
第七天:
[html] viewplaincopy
Qt啃了大概有1个月(事实证明这玩意在ARM开发上必须用到,但是那个已经是在做开发了,和原来做的东西一点关系没有,我要的是把两边的环境给弄好,然后才能说开始开发。但是弯路已经走了,后悔也来不及了),为什么还是第7天呢,因为这一个月我除了弄明白怎么写一个Qt程序,和ARM一点关系都木有,所以不算学ARM的过程了。
回来继续说,为什么不继续啃Qt了,因为经过一个月的折磨,我有了长足的“进步”,因为我熟悉了linux环境下的编程特点。
弄明白了什么是动态库,什么是动态库,可执行文件的构成……中间鄙视次数没法数了。说出来自己都觉得可怜。。。
这段时间基本就是在熟悉linux下的各种环境问题,之间还系统崩溃过一次,幸好后来找人抢救回来了。但是收获还是不少的。
比如:
在linux下可执行文件是ELF格式的,可以使用file <文件名>查看信息
ELF文件里面分成各种段,什么代码段,什么数据段等等
PC端的程序,可以使用ldd命令查看ELF使用的链接库信息
ARM编译的程序,可以使用arm-linux-readlef -d 查询。
在编译过程中需要注意各种环境变量,以及如何修改这些环境变量,很多细节没法说了,有空写个文说一下。
了解了linux根目录下的目录结构,和一些常用的文件位置。
什么是NFS,如何挂载NFS(虽然至今没挂载成功)
……还有很多很多,有的都想不起来了,有空了整理一下吧
上面是废话,第七天我在干嘛,哥告诉你,我在整NFS。
然后结果怎么样? 答: 板子黑屏了,我不知道怎么改回来。
怎么解决的? 答:还能怎么样。问度娘呗
解决了么? 答:没有
那打算怎么办? 答:睡觉去了。(我已经麻木了,有问题也懒得想了)
第八天:
[html] viewplaincopy
其实也就是4月19号那天了。懒得想问题了,找人。
我:“救命!板子罢工了”
朋友:“格式化,重装”
我:“哦?好的”
然后格式化(很顺利),重装?怎么整,电脑重装还是会的,ARM上怎么整?
用minicom?整了半天不行。被看到了。主动过来鄙视
朋友:“哥,你连个dnw都没有,怎么可能行”
我:“啊?dnw?”
果断度娘,然后找了一个linux下的dnw,但是怎么整都不对。果断放弃,准备换到window下整
没有驱动?网上下!(我用的是win7)
没有dnw?网上下!啊!不,光盘里面有
还要整什么?sourcecrt!网上下。
不会配置?一个个试。不行问度娘
经过一个中午的奋战,总算把准备工作弄好了,
然后重装系统是要装?!不懂啊,我鬼知道要装什么。。。
最后发现光盘里面有相关的资料,以前在linux下这些文件是乱码的,从来没看过,结果到今天才发现里面说的是什么,哭…………怎么不早点想到呢
根据步骤一步步安装(其实是朋友在帮忙装,我在旁边看着的,之后我自己又重装了一次)就好了。
因为送的光盘有很多已经那个编译好的了,所以免去不少时间,那些东西现在还是浮云,等有空了再弄!
内核?选2.6.30的
文件系统?操,看了一个月的Qt,所以无悬念选了Qt4.5
整完这些,差不多一天又过去了。
第九天:
[html] viewplaincopy
前天弄好了ARM板子上的东西,虽然装的过程很简单,但是很多东西一下子冲进了脑袋瓜子,版本这个词在我脑海中不断盘旋。
以前不对是不是因为两边的版本不一样,结果不行? 然后果断找光盘,发现里面有arm-qt-4.5的源码包,拷过来,然后傻瓜安装(为什么是傻瓜安装)。因为厂商已经写好了脚本了,运行下就可以了,不过中间还是遇到问题,不过经过一个月的洗礼,这点问题还是难不到我的。秒秒钟解决。
然后修改环境变量,编译程序
OH,耶,编译成功了。很傻瓜的操作。
然后检查:两本qt版本都对了,在板子上也有了对应的链接库。应该没有问题了吧!!
或许你也猜的到结果怎么样,还是那个老错误:not found。
啊,崩溃了。。。。我已经没办法了。
事实证明有时候只要再坚持一下就有可能有转机,然后我冥思苦想,在消耗了一桶卷纸时,突然想到,qt库的版本能是对的,那内核的咧?
然后果断用file命令查了一下编译出来的程序,发现是2.4.3的,而从板子上传过来的一个可以运行的版本是2.6.13的。看来原因就是在这里了啊。
问题接囧(错字?no,后面的很囧)而来。
后面就没想别的了,继续浪费纸了。。
第十天:
[html] viewplaincopy
也就是昨天,到底哪里出问题了,首先,试着用arm-linux-gcc编译了一个自己的程序,发现版本是2.6.14的。结果用qt做出来就是2.4.3的
找了很多资料,找到一个最靠谱的就是,让我改qmake.config,把里面的交叉编译工具改一下,感觉应该就是这个问题了
结果很悲剧,编译的时候报错了,而且这个错误找了一天没找到。
晚上的时候无意间发现,在普通用户下我的arm-linux-gcc是4.3.3版本的,但是在超级用户下就变成3.4.5的了,难道是这个原因?感觉不对,因为我改了qmake.confog了
晚上睡觉前整理了一下自己的问题,发了人生中第一个问题贴。还把自己的思路给写出来了,结果没人回答。唉。。。。
半夜突然想到有可能是因为我编译电脑上的qt的时候用的就是3.4.5,这样自然而然就错了。所以连夜重新编译了一次qt。
第十一天:
[html] viewplaincopy
这天不算学习ARM,早上起来把新整的程序放板子上跑了一下,成功了。至此,一个艰辛的学习过程总算告一段落了。现在两边基本都能搞定。
最重要的就是知道了怎么去查找问题错在哪里,花了一天时间写这些东西。就想发个牢骚,说说自己最近的苦逼生活。
相关文章推荐
- ARM从零基础到入门--告诉你这10天我都做了些什么--小白历险记--ARM之旅
- C++语言零基础入门教程:2.2 C/C++头文件大揭秘,""和<>有什么区别
- 股票入门基础知识3:什么是公司市值?
- 什么是神经元网络?5行python运行给你看,零基础动画入门
- 入门:用通俗易懂的语言告诉你什么是信息熵
- 什么是IndexedDB:Web离线数据库入门简介及基础教程
- 零基础入门篇之Linux及Arm-Linux程序开发笔记
- 零基础入门篇之Linux及Arm-Linux程序开发笔记
- 股票入门基础知识18:什么是市盈率(P/E)
- 我刚入门,收藏一个基础问题:什么是倒排索引
- 股票入门基础知识48:什么是交易中的隐性背离
- C++基础学习—C++入门 c++相对于c,引入了什么东西
- Jenkins基础入门-17-什么是Blue Ocean
- [WPF基础入门][4]__什么是依赖属性
- Python基础入门(六)- 什么是变量
- 股票入门基础知识4:什么是股市指数?
- 股票入门基础知识21:什么是股息收益率(DY)
- 【算法零基础入门】 学习笔记一 什么是数据结构
- PHP入门基础:什么是PHP
- PHP从零基础到入门,告诉你谁都可以