weiqi7777

cortex-a8裸机系列:第一章 九鼎开发板介绍

2
阅读(3296)

之前,跟着朱有鹏大神,一起学习物联网。记录下了一些笔记。现在将这些笔记,整理发到博客。供大家参考。 大神,用的开发板,是九鼎的x210-v3开发板,因此我也是使用的这个开发板。如果大家想学习物联网的话,可以购买朱有鹏大神的视频,跟着学习。

1、开发板信息

CPU三星S5PV210,基于cortex-a8

内存:512M ddr2

FLASH4GBINAND

LCD屏:7存,带触摸

电源:9V1.5A供电适配器

2、交叉编译器

arm-2009q3.tar.bz2:三星官方的编译器

3、硬件手册

电源开关使用软按键,长按电源开关键才开启电源。使用电源芯片。

复位键用来给系统关机

4、安装USB驱动

驱动在A\tools\USB驱动\x210_android_driver

5、fastboot

命令

fastboot devices查看当前连接的设备

fastboot flash xxx(分区)xxx(文件)烧录

fastboot reboot用来重启系统

分区:

bootloader

kernel

ramdisk

config

system

cache

userdata

使用fastboot烧录android4.0.4镜像

fastboot flash bootloader android4.0.4/uboot.binuboot

fastboot flash kernel android4.0.4/zImage-androidlinux kernel

fastboot flash system android40.4/x210.imgandroid rom

6、DNW刷机

1、开发板置于USB启动

2、长按电源键不放,使用dnw下载x210_usb.bin。下载地址是0xd0020010,这部分代码是负责初始化dram

3、使用dnw下载uboot.bin。下载地址是0x23e00000,下载完后,即可松开电源键。此时uboot就在dram中运行了。

4、使用fdisk –c 0进行重新分区

5、使用fastboot进行刷机

DNW刷机下,使用的是串口0

7、破坏系统

进入到linux系统中。执行以下的命令。

busybox dd if=/dev/zero of=/dev/block/mmcblk0 bs=512 seek=1 count=1 conv=sync

sync

qt系统。

busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync

sync

8、linux下刷SDuboot

1、window下的VMware USB Arbitration Service服务开启(参考http://blog.163.com/solylee@126/blog/static/171823157201138113230489/

2、在虚拟机下,将SD卡设备连接到虚拟机

3、uboot_sd_fusing文件夹拷贝到linux

4、使用ls /dev/sd*查看SD卡的设备名,一般是sdb

5、使用./ nand_fusing.sh SD卡设备名,对SD卡进行刷uboot

9、android2.0中不能使用fastboot

要先使用fdisk –c0进行重新分区,就可以使用fastboot

10FLASH存储器

NANDFLASH

SLC:容量小,价格高,不易产生坏块,可以不用ECC校验

MLC:容量大,价格低,易产生坏块,但是要ECC校验。

eMMCembeded MMCMMC协会所订立的、主要是针对手机或平板电脑等产品的内嵌式存储器标准规格。eMMC的一个明显优势是在封装中集成了一个控制器,它提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。这些特点对于希望通过缩小光刻尺寸和降低成本的NAND供应商来说,同样的重要。

eMMCSD的接口是一样的。

iNandsandisk公司出产的eMMC

Movinand是三星公司出产的eMMC

Onenand是三星公司出产的一种nand

有两种类型,muxeddemuxed

对于muxed型,地址引脚和数据引脚结合在一起,而demuxed型芯片这两个引脚是分开的。当关注的是减少引脚数时,选择muxed OneNAND可能好一些。另外,muxed OneNAND只工作在1.8Vdemuxed的密度较低,不到1 Gbitdemuxed1.8V3.3V两种选择。如果muxeddemuxed器件的密度超过1 Gbit,则只能选择1.8V的工作电压。

11、SD/MMC通道接口

S5PV210支持4SD/MMC通道,通道0和通道2依次用作启动通道使用。SD/MMC通道0用于连接板载MMC。外部启动时要使用SD/MMC通道2

以下是SD/MMC的地址空间

从芯片的存储地址分布,看出SD/MMC是属于SFRS区域的。

12、RAM

SRAM静态内存,容量小,价格高,访问快,不需要软件初始化直接上电就能使用。

DRAM动态内存,容量大,价格低,访问慢,上电后不能直接使用,需要软件初始化后才可以使用。

13

PC很小容量的BIOSnorflash+很大容量的硬盘(类似于NANDFLASH+大容量的DRAM

一般的单片机很小容量的NORFLASH +很小容量的SRAM

嵌入式系统因为NORFLASH很贵,所以现在很多嵌入式系统不用NORFLASH,一般用外接的大容量NAND +外接的大容量DRAM + SOC内置SRAM

14uboot命令下擦除inand

movi命令

movi write u-boot 0x30000000

把内存地址中0x30000000中的数据写入到inand中的uboot区域

另外一种方法,

mw0x300000000x00x100000将内存地址0x30000000开始的0x1000000大小擦除成0

moviwrite u-boot 0x30000000uboot分区的内容用内存地址0x30000000开始的数据擦除

15、通过usb下载,程序超过16KB怎么办

通过USB下载最多也只能下载96KB大小的bin,如果bin大于96KB肯定SRAM放不下会出错。

如果用SD卡驱动,那么mkv210_image.c决定了bin文件最大不能超过16kb

两种解决办法:

第一、USB下载时,先下载一个x210_usb.bin,然后再将裸机程序链接到0x23e00000,然后再修改dnw中下载地址,将裸机代码下载到0x23e00000运行。(这个时候不需要重定位了。因为程序已经在DRAM中运行了)

第二、SD卡启动时,将整个裸机工程分为2部分,第一部分大小16KB以内,第二部分放剩下的(方在SD卡的后面的某个扇区开始的位置,比如放在第50个扇区开始的位置),然后再裸机代码中进行重定位(SD卡中重定位)。

Baidu
map