看着自己5个多月以前刚接触嵌入式的时候,一切都是那么的新鲜,配置好minicom也能给我带来如此大的成就感。呵呵~~经过这段时间的学习,发现离高手的距离实在太大,还得继续加油!
1 虚拟机minicom的配置+GURB error22
(2009-02-19 10:09:33)
[编辑][删除]
继续写。
1 先说个小插曲:本来我是安装了xp+ubuntu的,后来想着很多工作可能都要在xp下完成。当我想用虚拟机安装linux时,却发现提示空间不足,我也不知道该怎么办,一怒之下在xp下直接将linux分区删掉了 - -#。大家应该知道后果如何吧,估计许多同学都犯过类似的错误。
总结:不能直接在xp下删除Linux分区,具体原因是GRUB没有修改过来,linux分区删除以后,GRUB还是默认从linux启动的,必须先在Linux下将GRUB修改成从windows启动。所以当分区被删后,系统自然是不能启动了。一开机停留在GRUB error22的画面 - -#。
至于GRUB怎么修改,还要继续学习!
2 GRUB error22的解决办法
出现GRUB error22后,可怎么办呀。急的我像热锅上的蚂蚁。以为电脑硬盘可能会坏了。菜鸟就这样,做事不细心还老闯祸,呵呵~后来经过网上查阅,发现很多人都有这个问题呢。
我是这样解决的:笔记本开机后,按F2进入BIOS设置,将XP系统安装盘放入光驱,直接重装了。C盘的东西没了,其他的自然会在,但起码电脑可以启动了~~~不过网上还有一种方法,当系统盘放进光驱后,按R键进入控制台进行恢复,好像是进入到命令行模式输入fdisk /MBR .这个命令是恢复硬盘启动引导顺序。
很可惜,我没试过这种方法,还是重装直接了当!
3 到现在一切OK,虚拟机下安装了red flag6 - -# 支持了国产,呵呵~~界面跟windows超级像,比较山寨~
硬件环境:本本+S3C2410开发板
(1)首先在 wmware虚拟机中添加串口(如果没用虚拟机可以跳过这步)
先关闭虚拟机下的LINUX,然后设置一下虚拟机:在vm-〉settings-〉hardware里添加串口。具体添加哪个串口,最好先在windows下试试,看设备管理器里的串口设备提示,可以看见你究竟是com1 还是com2 或者com3。
(2)设置MINICOM
虚拟机启动进LINUX系统,看见red flag6界面了- -#。被雷到了,跟windows真的是太像了,呵呵~
开个终端,输入minicom,如果提示没有这个命令的话,去网上下载个包并安装好!
安装好后,还要对它做一些配置。终端输入su,先切换到管理者权限,再输入minicom -s
就跳出来配置画面了~
Filenames and paths
File transfer protocols
Serial port setup
Modem and dialing
Screen and keyboard
Save setup as dfl
Save setup as..
Exit
Exit from Minicom
设置第三第四项,分别是串口设置与MODEM设置
选择Serial port setup之后会弹出串口设置菜单选项,如下:
A - Serial Device : /dev/ttyUSB0 //提醒一下:LINUX设备的编号是从0开始的比如串口1也就是COM1在LINUX里的设备号叫ttyS0,这种情况是不用USB转接线,即直接插在串口上。因为本本没串口,用的是串口转USB的转接线与开发板相连。设备命名方式就变成了ttyUSBx的形式了。在Linux下Usb转串口的线几乎不需要驱动,插上以后在dev的目录下应该会有一个ttyUSB0的文件,假如有那么恭喜你了,你的这根线现在是可用的了。也可以输入dmesg |grep usb ,看看输出信息有没有pl2303、ttyUSB0什么的,我自己买的线不能用,在超级终端下还可以用呀,不明白为什么。害我折腾了一下午。。后来晚上用师兄的线试了试,居然就发现设备了。
B - Lockfile Location : ar/lock
C - Callin Program :
D - Callout Program :
E - Bps/Par/Bits : 115200 8N1 //115200是波特率,根据开发板的要求设置。
F - Hardware Flow Control : NO //硬件流设置为无
G - Software Flow Control : No
Change which setting?
MODEM设置:Modem and dialing
进入将A,B,K对应的选项内容全都清空,为什么要清空,我也不知道
设置完了,保存。Save setup as dfl。一定要先保存再退出哦~
开发板重新上电,可以启动了吧~~如果不行的话,给我留留言 我们一起讨论讨论。
这两天主要做了这些,每天呆在电脑前的时间都差不多超过了10个小时~~不过好在还是学到了点东西,这些可是书本上看不来的类~内容写的很散乱,以后再总结吧~
2
烧写nand flash及vivi编译
(2009-02-18 23:17:54)
[编辑][删除]
通过软件包种提供的SJF2410+JTAG并口线进行。首先安装GIVEIO驱动,具体怎么安装应该有说明的,这里就不用详细说明了吧。安装好驱动后并口线就可以使用了。在windows下运行cmd,打开Msdos界面,注意:要烧写的文件必须与sjf2410.exe在一个文件夹下。在dos命令行中输入相关命令找到这个文件夹所在位置,这个不用说了吧。很简单的--#。。。
开发板重新上电,即可看到VIVI的启动信息!可以看到vivi启动以后的提示信息,press enter to start the linux now,any other key for vivi.因为开发板中内核还没烧进去呢,所以linux是不能启动的。按任意键进入vivi的命令行,vivi不仅是个bootloader,它本身还可以提供一些命令,充当下载工具。正是利用这点,可以在vivi的命令行下来下载内核与文件系统。
2后面的操作很简单了,先利用vivi分区呗,分区后flash中的所有内容将被清空,因为开发板上电后,vivi从flash加载到了内存中运行,所以再进行分区命令后,它还是可以在内存中运行的。同理在终端还是可以看见vivi的界面。
难题1 vivi 编译
首先要有vivi源代码,解压后修改Makefile,
1 安装交叉编译器
开发板目前还是用2.4的内核,对应的交叉编译器用2.95.3.据说是这样的~~、
在终端中运行,cd /home/tangcong/
tar -xjvf cross-2.95.3.tar.bz2
解压完成;将2.95.3文件夹移动到/usr/local/arm/下
首先要在/usr/local下建立arm目录咯
终端输入:cd /usr/local
mkdir arm
再执行 cd /home/tangcong
mv 2.95.3 /usr/local/arm 或者cp -R 2.95.3 /usr/local/arm 具体怎么操作,看个人喜好,不过不能进行复制粘贴的。~~~
修改/etc/profile
终端输入:vi /etc/profile,在最后一句输入export PATH=$PATH:/usr/local/arm/2.95.3/bin
保存退出。修改环境变量,bin文件夹就是存放所需命令的目录了。
再输入命令 source /etc/profile 或者重新运行终端都可以更改生效。
在执行arm-linux-gcc,成功了。很简单。
2 vivi也需要修改。将源码存放在自己的工作目录下。接下来就要修改vivi的makefile。
需要修改的地方有三个:CROSS_CMPILE,LINUX_INCLUDE_DIR,ARM_GCC_LIBS
根据网上各位同学的分享,可以得知将它们分别修改为:
CROSS_CMPILE ==/usr/local/arm/2.95.3/bin/arm-linux-
LINUX-INCLUDE_DIR ==/usr/local/arm/2.95.3/include
ARM_GCC_LIBS =/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3
修改好后,保存makefile,。
分别执行make distclean
make menuconfig:进入/vivi目录里,输入“make menuconfig”,开始选择配置。vivi源码应该已经配置好过了,这里不用怎么修改。根据自己需要稍作改动,然后保存退出。
make 如果不提示出错的话,在vivi目录下会生成一个二进制镜像文件。
看起来好像很简单,我也是花了一上午的时间才弄出来,头都大了。最后还是要感谢baidu,还有各位分享经验的同学们!!
附:vivi代码分析
vivi的代码包括arch,init,lib,drivers和include等几个目录,共200多条文件。
Vivi主要包括下面几个目录:
arch:此目录包括了所有vivi支持的目标板的子目录,例如s3c2410目录。
drivers:其中包括了引导内核需要的设备的驱动程序(MTD和串口)。MTD目录下分map、nand和nor三个目录。
init:这个目录只有main.c和version.c两个文件。和普通的C程序一样,vivi将从main函数开始执行。
lib:一些平台公共的接口代码,比如time.c里的udelay()和mdelay()。
include:头文件的公共目录,其中的s3c2410.h定义了这块处理器的一些寄存器。Platform/smdk2410.h定义了与开发板相关的资源配置参数,我们往往只需要修改这个文件就可以配置目标板的参数,如波特率、引导参数、物理内存映射等。