标签:保存文件 1.2 super 2.3 问题 表示 保存 pen 信息
手头的Mini2440搁置了两年半之后,我再次决定拿出它,重新尝试嵌入式Linux的学习。
我使用的是友善之臂的Mini2440开发板、韦东山的《嵌入式Linux应用开发完成手册》及其视频教程。所以,本篇文章中所涉及到的各种软件均可在以下两处找到:
JZ2440是韦东山出品的开发板,作为《嵌入式Linux应用开发完全手册》的配套硬件,它和Mini2440相差无几,所以我这里用的是Mini2440。
动手之前先确定好一个小目标——这一次,我们的目标是在Mini2440上点亮LED,怎么样,听起来很简单吧。
但是做起来,可并不是很简单喏,主要是因为会涉及到比较多的软件,下一节会对各软件做个大致的介绍,你只要知道各个软件是用来做什么的就可以了,先不必细究。
硬件平台:Mini2440 (64M Nand flash)
软件编译平台:Ubuntu 9.10
以下是你接下来会依次接触到的软件或是工具:
下载JZ2440的配套光盘,光盘里面有VMWare和已经安装好编译工具链的Ubuntu。
下载完成之后安装VMWare,然后用VMWare打开Ubuntu。整个过程比较简单,网上有很多教程。
介绍一下大致的工作流程:
我们将Windows作为主机,在Windows上,我们可以通过VMWare访问虚拟机Ubuntu。而Ubuntu仅仅作为编译环境,其余的大部分操作还是在Windows上完成。使用Ubuntu的最终目的是生成可供下载至Mini2440的bin文件,然后在Windows上通过相应的工具将这个bin文件烧录至2440开发板。
那么,你可能要问了,这两个不同的操作系统之间,可以互相访问吗,生成的bin文件要如何在两者之间传递呢?
不着急,我们接下来就会来解决这个问题了。
接下来在主机(通常是Windows)与虚拟机(这里是Ubunbu)之间设置共享文件夹,主要是安装VMWare tools,这里不再赘述,网络上有相应的教程。
刚才一口气做了这么多事,让我们先来休息一会儿,想一想我们都已经完成了哪些事了。
到现在为止,我们已经在Windows上安装好了VMWare,通过VMWAre我们可以使用Ubuntu系统,接下来,我们将在Ubuntu中编写点亮Led的代码,以及描述如何生成可供下载至Mini2440的bin文件。通过在1.2节设置的共享文件夹,在Windows上,我们可以取到这个bin文件,并通过相应的工具将它烧录至Mini2440。
你可能是头一次听说vi,还不知道如何使用。关于vim,网上也很大把的教程,同时,这里也有vi的视频教程。你只需要掌握几个简单的操作,例如如何新建文件,如何输入并保存文件即可。
在你学会使用vi后,请新建一个名为led_on.s的文件,它的内容如下:
.text
.global _start
_start:
LDR R0,=0x56000010
MOV R1,#0x00015400
STR R1,[R0]
LDR R0,=0x56000014
MOV R1,#0x000000C0
STR R1,[R0]
MAIN_LOOP:
B MAIN_LOOP
以上汇编代码主要做了两件事:
如果你仍然有些疑惑,那你可以看看这个视频教程的前半小时的内容。当然,对于这段代码的内容不太理解也没有关系,知道它大致做了些什么事情就可以啦!
使用vi新建一个名为Makefile的文件,它的内容如下:
led_on.bin:led_on.s
arm-linux-gcc -g -c -o led_on.o led_on.s
arm-linux-ld -Ttext 0x00000000 -g led_on.o -o led_on_elf
arm-linux-objcopy -O binary -S led_on_elf led_on.bin
clean:
rm -f led_on.bin led_on_elf *.o
同样地,前面的视频教程也有对这个Makefile文件的讲解。
在Ubuntu中打开终端,cd至led_on.s和Makefile所在的目录,执行以下命令,生成led_on.bin。
make
至此,我们已经生成了将要下载到Mini2440开发板中的led_on.bin文件。
Mini2440有两种启动模式,分别是从Nand Flash启动和从Nor Flash 启动,两种启动模式通过开关S2控制。
在 NAND Flash 启动模式下,上电之后,Nand Flash 最前面的4K 空间的内容会被拷贝至S3C2440 (Mini2440开发板上的主芯片)中的片内SRAM中,接着从SRAM的0地址处开始执行。
在 Nor Flash 启动模式下(非 Nand Flash 启动模式),Nor Flash 起始处就被映射为 0地址,接着从Nor Flash的0地址处开始执行。
在本文中,我们将使用Nor Flash模式启动,通过烧录至Nor Flash的Supervivi,将2.3生成的led_on.bin烧录至SDRAM处执行。
SDRAM 地址空间: 0x30000000 ~ 0x34000000
使用直连串口线连接Mini2440开发板的串口 0 和 PC 机的串口,在Windows上打开并设置好串口助手(115200,8N1),将Mini2440上的开关S2拨至Nor Flash启动模式,然后将开发板上电,如果串口助手上没有打印出以下内容,则需要根据4.2及其以后的步骤烧录supervivi至Nor Flash.
在Mini2440光盘里可以找到安装文件
打开JFlash,依次打开Options->Project settings…,按照下图配置。
通过File->Open data file…导入supervivi-64M.bin(注意区分应该选64M还是128M的,我的Mini2440上的Nand Flash是64M的),地址填写0,表示bin文件将烧录至Nor Flash的0地址处。
依次选择Target->Auto,等待烧录完成。
参照Mini2440用户手册的2.2.3节安装dnw
4个Led中,Led1和Led4应该是被点亮,而Led2和Led3则是熄灭的。
至此,总算是把Led给点亮了,虽然整个过程有一些繁琐,但是并没有多大的难度,主要是涉及到比较多的工具软件,如果有哪个步骤卡住了,你可以先尝试在网络上搜索一下,如果自己无法解决,欢迎留言。
如果你看了这篇文章,觉得有一点点收获,那就给点打赏,给我更大的写作动力吧。
标签:保存文件 1.2 super 2.3 问题 表示 保存 pen 信息
原文地址:https://www.cnblogs.com/outs/p/9315162.html