赞
踩
前言:韦东山开发板学习笔记,第二篇。上一篇讲了:如何与ubuntu系统通讯,属于开发手册 “第三章-开发环境搭建” 的内容。这一篇讲如何给开发板下载程序,属于第四、五章的内容。
eop/uboot下载
,韦东山还有两小节免费的课程可看。讲得很纤细,第一眼还想吐槽视频很老旧,但确实很实用:第6课_第3节_eop使用的常见问题以及解决方法、第6课_第4节_使用uboot烧写裸板程序;配套文档:第006课 开发板熟悉与体验。./
下找到。本文所提到的文件(程序、软件等)和使用的设备(开发板、下载器等)都来自韦东山(百问网)的JZ2400开发板及其相关资料文档。EasyOpenJTAG
是一个下载器,和之前使用过的JTAG
、DAP
、ST-Link
类似,都是用来给单片机下载程序的,如果有仿真功能,还可以称作仿真器。EasyOpenJTAG
下载器还需要搭配一个软件工具 —— oflash
,才能为S3C2440
单片机 下载程序。类似于之前使用的IDE
,下载器需要通过IDE
才能给单片机下载程序。不同的是,这次的软件工具只是单纯的下载程序,并没有IDE
的其他功能,甚至连图像界面都没有,只有命令行界面。oflash
指令了。
- 安装 “应用程序” :
./eop裸板烧写器.rar/01.OpenOCD with GUI setup.exe
,双击打开安装文件。- 安装只需要点下一步和修改安装地址即可,无其他需要设置。
- 安装完成后打开pc终端,输入
oflash
指令查看是否打印相关提示,若无报错则标明安装成功。
usb
设备了。
- 根据使用手册的教程,需要 “更改 Windows10 启动模式”。
注意!!注意!!可能是我操作不但,我直接把自己系统变量里的Path
变量的值全清空了。我也不知道我做了什么,最后结果就是Path
值全清了,因为我安装了很多软件配置了很多环境变量。这个情况把我害惨了……建议先跳过这步,如果可以就不要乱改。要改就先备份一下path值……- 将
EasyOpenJTAG
下载器设备插入pc机,打开 “设备管理器”,可以看到几个感叹号未识别设备。右键 - 更新驱动程序 - 选择./eop裸板烧写器.rar/驱动
文件夹。电脑会自动搜索目录下的驱动文件并安装。几个感叹号设备都是如此安装。- 安装完成后,再重新插拔下载器,就能看到没有感叹号设备了,取而代之的是几个新名称的设备。
oflash
指令,一路输入:0、1、0、lens.bin(文件名字)、0、0,最后自动退出表示现在完成。具体就是如下:
Select the JTAG type
—— 选择JTAG类型;Select the CPU
—— 选择CPU;[Main Menu] Select the function to test
—— [返回菜单] 选择要测试的函数;Enter the file name
—— 输入文件名;[NAND Flash JTAG Programmer] Select the function to test
—— [NAND闪存的 JTAG程序] 选择要测试的函数;[NAND Flash Writing Program] Input target block number
—— [NAND闪存的 写入程序] 输入目标块号;
NAND Flash
,这是因为我下载的是裸机程序,裸机程序需要下载到NAND Flash
中启动。第6点选择程序写入的开始地址,选0就好了。那么问题来了,什么是
NAND Flash
?什么是NOR Flash
?二者有什么区别?阅读文章:杂谈闪存二:NOR和NAND Flash;观看视频:【每日精选】嵌入式038.Nandflash和Norflash的特点。
NAND
存储裸机程序、经常需要修改的程序,NOR
存储引导程序、不经常修改的程序。前期入门都还是单片机裸机程序,所以都是NAND
程序。现在只需要注意,把程序下载到NAND后,需要设置开发板从NAND启动,就能看到刚刚下载的流水灯程序的效果了。如果没效果,尝试断开下载器,重新上电试试。下图中,⑪
启动选择
就是选择NAND
或NOR
启动的开关;⑫256M byte NAND FLASH
就是NAND
芯片;对应⑩2M byte NOR FLASH
就是NOR
芯片。对比之下,NOR
芯片容量明显少得可怜。还有⑭32M*2 byte SDRAM
作为“内存条”的掉电不保存的数据存储芯片,和⑮S3C2440A
单片机。
下图就是我用的JZ2440开发板,侧面右边的开关就是⑪
启动选择
。下图中是拨到了NOR
启动,所以看到屏幕显示的是系统界面。如果拨到NAND
就不会运行系统程序,而是运行我刚刚下载的流水灯程序。
oflash
指令,获得以下报错内容,提示OpenJTAG
没有连接,或是被占用。cpuID = 0xffffffff
;cpuID = 0x00000000
;NAND
或是NOR
,经过测试是没有影响的。当前处于什么模式下不影响eop对单片机的下载,因为eop是独立的下载器,下载程序是直接写入操作。这一点,是和以前用过的下载器相同的。./下载文件bin/led_on.bin和leds.bin
2个下载文件,功能分别是点亮单个灯和流水灯。可以分别下载,看看效果,验证程序确实下载进去了。再次说明,是要下载到NAND
中,也从NAND
中启动。什么是
uboot
?阅读文章:什么是uboot?uboot有什么用?。
uboot的
理解,如上文章中所说,就是一段程序,起到类似引导的作用,它位于NOR Flash
中。单片机从NOR Flash
启动,运行uboot
,然后接收串口的指令或数据,做出相应的动作。比如将USB数据烧写进NAND Flash
,此时NAND Flash
就好比一块普通的内存空间、或硬盘。
uboot
和eop
用起来有什么不同?
uboot
和eop
所需的接线,eop
下载只需要接一个下载接口就可以了。而uboot
下载就需要两个接口:一个串口通讯接口,和一个USB设备接口。串口通讯接口是经过一个USB转串口芯片;USB设备接口是直接连接单片机的。PL2303HX
芯片的原理图;这个串口的作用有点像之前用过的FreeRTOS
和RT-Thread
系统的FinSH 控制台,使用串口通讯,用出终端命令行(又或者说是黑白的pc机BIOS)的感觉。USB DEVICE
(USB 设备)的原理图;这个USB设备的功能(之前我制作过CH32V103单片机的下载器,那个下载器就是用单片机的USB设备引脚
DN
与DP
与pc机交互数据。
NOR Flash
中没有uboot
程序,需要先下载。用上一章的eop
方式下载。找到我git库中的下载文件bin
目录下的程序u-boot.bin
文件,将它下载进NOR Flash
中。注意,是NOR Flash。uboot
需要下载到NOR Flash
。下载步骤的第3、5点需要选择
NOR Flash
,得到的反馈信息会和选择NAND Flash
不太一样,但是步骤还是一样的。具体如下图,另外下载时间很长。
- 断电;
- 断开
eop
下载口;- 连接 两个USB接口;
- 将启动开关设置为
NOR
;- 先不急着开机;
先安装串口通讯所需要的串口驱动,我git库./串口驱动/PL2303_Prolific_DriverInstaller_v1.7.0.exe
的文件双击运行。
再打开串口通讯上位机软件工具(有没有人吐槽一下这个超长的名称);这里为了方便使用uboot
的类FinSH
模式(还不知道怎么称呼这个类),使用FinSH
模式,姑且先这样称呼,也好理解MobaXterm
做演示。
- 先打开
MobaXterm
串口工具(上一篇01笔记的知识),再给开发板上电。如果不进行任何操作,应该能看到串口打印如下内容。uboot
会在开机3秒倒计时后启动Linux
系统内核,运行Linux系统,之后就能看到开发板上的屏幕亮了,显示Linux桌面。
- 我们要使用
uboot
下载程序,而不希望它启动Linux系统。类比:启动pc机,想进入BIOS修改设置,而不是进入win10一样。只需要在开机的前3秒内按下空格就可以进入uboot
命令模式了。按空格后需稍等片刻才弹出菜单,为什么我弹出两遍?因为我不小心按多了一次空格。
./USB DNW/zadig-2.3.exe
文件双击运行。该目录还有下载软件dnw_100ask.exe
和PDF版使用教程。安装细则和使用细则可以看PDF教程,很详细、简单。驱动安装后,开发板需要重新连接PC机/重新上电。然后就算准备完前期安装步骤了。注意顺序,先启动再安装驱动。(
我安装过后再重新打开安装程序,不知道为何没有选项了,所以无法截图,借用韦东山教程里的图吧。)
NOR
安装uboot
,再启动uboot
,最后安装USB DNW
驱动,在重新上电就好了。uboot
模式,方法和上面一样。然后得到菜单,不同的uboot
返回的菜单可能不一样,只需要找准需要的功能即可,以后也可以自己修改uboot
程序代码(?)。Download u-boot to Nand Flash
(下载,从u-boot
到Nand Flash
),这个翻译不太给力。其实就是把程序下载到NAND
中。输入关键字n
即可选择。然后得到提示:USB host is connected. Waiting a download.
(USB主机已连接。等待下载)。./USB DNW/dnw_100ask.exe
文件,点击USB Port - Transmit
选择下载文件,即可完成下载。注意,该软件标题框上出现[USB:OK]
,才表示可以下载。大体流程:进入uboot,选择指令,开发板等待下载完成,打开下载软件,选择下载文件,开发板下载完成。开发板重新上电,选择NOR/NAND
启动,查看程序运行效果。
uboot
下载需要两根线,一根串口通讯,一根数据传输。
如果开发板没有uboot
程序,需要先下载。而是需要下载到NOR FLASH
中。
如果uboot
串口通讯时乱码,尝试修改波特率,一般为115200
。
就个下载程序居然就折腾了我那么久。认真看发现韦东山的视频和教程都挺详细的,就是语速慢了一点,还有就是太乱了。我找了好久才找到,应该从哪里开始看,和开始时要看的文件。
开发板买来就是学习的,就是用来“破坏的”,不要担心上面的东西被破坏,因为我们有办法恢复出厂系统。
我们先对比PC看看出厂系统有哪些东西:【图片没了】
可以看到我们的东西都放在Flash上面,对于我们的JZ2440,有256M的
Nand Flash
和2M的Nor Flash
,所以我们内核、根文件系统那么多的文件,应该是放在Nand Falsh
。Nand Falsh
内部数据分布如下:【图片没了】
其中
bootloader
既可以在Nand Flash
也可以在Nor Flash
,params
的变量存储有uboot
的参数信息。恢复出厂系统的具体步骤如下:
- 使用
op/eop
烧写u-boot
到nor/nand
, 设置为nor/nand
启动;- 上电与开发板的
usb device
口; 安装驱动;- 下载内核: 在UBOOT的串口菜单中输入
k
;- 使用
dnw_100ask.exe
发送uImage
文件;uboot
即会自动接收、烧写uImage
文件;- 下载文件系统: 在UBOOT的串口菜单中输入y;
- 使用
dnw_100ask.exe
发送fs_qtopia.yaffs2
文件;uboot
即会自动接收、烧写根文件系统;- 输入
q
退出UBOOT串口菜单, 执行命令删除参数分区:nand erase params
;- 重启(对于QT文件系统,第一次重启时会要求你较准触摸屏);
(如果触摸不准,可以等系统启动后在串口执行:rm /etc/pointercal
然后重启再次较准)
————————————————
版权声明:本文为CSDN博主「韦东山」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/thisway_diy/article/details/79385286
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。