我和TFTP相遇的那个盛夏——小白学ARM(八)
我和TFTP相遇的那个盛夏——小白学ARM(八)
一通废话
转眼春去秋来,小白也快成研二的秃子了,导师催着搞开题,哎,没法一心一意学嵌入式了。忙里偷闲,把嵌入式裸机最后一阶段的课程学完了。
前面的裸机程序得心应手,按键、串口、nand、mmu、触摸屏等,有了学STM32 的基础搞起来很容易。
但是到了最后一部分,网卡搭建、tftp移植、bootm那里就卡住了。。。
村里终于通网了
呐,要用网络,先得让开发板连网线吧,网线连哪呢?本来想用交叉线直接连笔记本,发现送的那根网线不是交叉线(网线有两种规格哦),教程里给的连接方案是这样的:
mini2440开发板用送的网线连接到路由器(就是家里用的带好多天线的那个,有了它可以连无线网),然后你的电脑通过无线网连接到这个路由器提供的网络,这样开发板和电脑就同处一个网段中了。
但是,好死不死,我的教研室的路由器在离我很远的地方,每次做实验都拖家带口地跑师兄的座位旁边实在让人不好意思。
犹豫了两天,还是买个路由器,自己搭一个专用的无线网。某宝二手的只要15块,买来用教研室网线插上,设置一下就有了一个属于自己的无线网了。
开发板插路由器上,笔记本连无线网,可以看到我的笔记本ip地址:
到时候写程序目标机就填这个ip,mini2440的ip也得按这个设置,可以设为192.168.1.120 只要前面三段保证是192.168.1,最后一段不要和这个无线网下其他设备重名就行。
网搭好后可以试一下能不能互联,只要ip填的对,连接保证好,一般都能连上,我在这里挺顺利的。
按照国嵌的教程,把ARP协议实现了,
接下来的tftp才是让我头疼的东西
TFTP和u-boot的爱恨情仇
国嵌的教程到后面用的是TQ2440的板子作为范例,这个板子主控啥的和mini2440大同小异,要命的是TQ2440用的不是supervivi,而是类似于uboot的一个bootleader,按下q后出现的是一个“embedsky”,而我的mini2440用的是supervivi,按下q是这样的
我试了一下,用supervivi是没办法做到像教程里的那样用TFTP下载内核,使用bootm启动内核的,因为supervivi主打的是用usb下载,连接据说不是很稳定(我用的还好,就是要多插一根USB线,安装极其反人类的驱动)
也就是说supervivi是不支持tftp下载的,要想用就得投奔u-boot的怀抱(还是u-boot用的多),但是不是你随便在网上下一个uboot就能在mini2440上用的,得找经过移植的u-boot,网上有个叫“Tekkaman”的家伙很厉害,做了现成的移植程序:
但是呐,网上文章里给的连接基本上不能用,出墙了也不好使,可能年代久远,作者把东西搬地方了吧,本论坛呢,有是有,给钱就行,像小白这样的穷B是不可能买积分,更不可能充会员的,有钱谁还写程序啊(diss一下本站下载收积分制度,搞得掉钱眼里一样,分享赚积分?谁下丫?结果就是小白没法进入这个圈子,看到****的下载敬而远之,心里骂一句,没好映像。你好歹搞个签到送积分啊,这样搞迟早破产,开源万岁!!!)
最后还是在国嵌第4季的教程里找到对应的uboot,用Jlink下载到nor里,跟下载supervivi一个流程。下完后就没办法用USB下载程序啦,只能用TFTP下。(也有支持用USB下载的版本)如果大家没找到可以在下面留言留下邮箱,给你私发,不差钱也可以到贵站下。
下到nor里,从nor启动,就可以看到uboot的打印信息了,不同版本操作有些许不同,我这个是5s内按下任意键中断内核启动,进入命令行模式,就可以使用TFTP下载内核啦。
更多的蛋下期再扯。