SP56818刷机教程 笔记 ,从第八部开始是刷机教程

2019-07-12 16:44发布

 SD卡分区视频:http://pan.baidu.com/s/1crpHka        SP56818下载链接:      http://pan.baidu.com/s/1bo1MPUf 一.ubuntu系统需要安装的软件包
二.课程SDK
Linux 嵌入式Linux系统相关
    images  嵌入式Linux系统镜像(rom)
    prebuilts 交叉编译工具链
    src 嵌入式Linux系统源码
    tools 开发工具

package 软件包
    sudo apt-get install stardic
    sudo cp dic/* /usr/share/stardict/dic/ -rf

extern 软件包

三.嵌入式系统
    不带系统
         MCU
    带系统    
        SOC  Linux/Android     

四.工作岗位
    硬件工程师(设计电路画板)
    软件工程师
        应用程序开发
        驱动开发

    第一次开发:半导体原厂做,高通 三星 飞思卡尔 TI 小米 华为 联发科 全志
    第二次开发:开发板解决方案厂商
    第三次开发:项目
    
五.ARM
    arm

    cpu           SOC
    经典处理器:
    arm7 ------> S3C44B0
    arm9 ------> S3C2410/S3C2440
    arm11 -----> S3C6410
    cortex系列:
    arm-cortex-a
        a8     S5PV210  三星 单核 win android linux
            AM335    TI  单核 win android linux
        a9    Exynos4412    三星 4核
            Omap4460 TI 双核
            S5P4418 三星 四核
            Imax6Q  NXP 四核
            Imax6D    NXP 双核
        a15     Exynos5210 三星 8核心(4个a15,4个a7)
    arm-cortex-m
        m3    stm32f103
        m4    stm32f407
        m7    stm32f707
    arm-cortex-r
        realtime
    V8:arm-cortex-a
        a50
            a53    S5P6818
            a57
        a72
        a73    

S5P6818开发板启动方式
    1.sd启动
    2.emmc    
    3.usb
    
六.软件架构
应用程序
/ init进程---->其他进程
kernel    进程管理 内存管理 文件系统支持 网络 设备驱动,挂载根文件系统
bootloader 初始化硬件,加载内核
原厂启动代码 初始化基本硬件,检测启动方式,加载bootloader
-----------------------------------------------------
SOC+DDR(1G)+EMMC(8G)+LCD+SOUND+NET+WIFI+BLE+USB+.........

七.Andriod系统和Linux系统
    Android手机
    emmc{bootloader uImage ramdisk [system][data][cache][storage]}
    bootloader---->uImage---->ramdisk(内存)
                /system 系统软件
                /data    用户自己安装的软件通讯录配置
                /cache    
                /storage 用户软件产生的数据
    Android系统的rom:
        bootloader
        uImage
        ramdisk
        system.img    
        userdata.img
        cache.img

    针对我们的开发板:
    emmc{bootloader [uImage ramdisk][system][data][cache][storage]}
    Android系统的rom:
        bootloader
        boot.img
        system.img    
        userdata.img
        cache.img
    

    Linux系统:
    emmc{booloader uImage [rootfs]}    
    Linux系统的rom:
        bootloader
        uImage
        rootfs.img    
    针对我们的开发板:
    emmc{booloader [uImage][rootfs]}    
    Linux系统的rom:
        bootloader
        boot.img
        rootfs.img

八.刷机原理
    1.板子首次启动需要sd卡启动
    2.sd中的bootloader启动后运行fastboot命令进入刷机模式
    3.pc把刷机rom发送给开发板,开发板的fastboot把收到的镜像文件写到emmc的合适位置

八.刷机    
    Linux系统rom:/home/zyli/6818/s5p6818sdk_lzy1/Linux/images    
    S5P6818如果从sd卡启动,会从sd卡的第二个扇区读取bootloader
    sd{512bytes|bootloader [--------------------][-----------------]}    
      /dev/sdx             /dev/sdx1         /dev/sdx2

    1>建立sd分区
        参考<建立sd卡分区.mp4>
    2>把bootloader烧写到sd卡
        sudo dd if=./ubootpak.bin of=/dev/sdx seek=1 sdx是sdb。     3>配置minicom
        安装:sudo apt-get install minicom
        配置:sudo minicom -s
                   +-----[configuration]------+
                       | 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        |
                       +--------------------------+
               选择Serial port setup
                +------------------------------------------+
                    | A -    Serial Device      : /dev/ttyUSB0 |
                    | B - Lockfile Location     : /var/lock    |
                    | C -   Callin Program      :              |
                    | D -  Callout Program      :              |
                    | E -    Bps/Par/Bits       : 115200 8N1   |
                    | F - Hardware Flow Control : No           |
                    | G - Software Flow Control : No           |
                    |                                          |
                    |    Change which setting?                 |
                    +------------------------------------------+
        运行:sudo minicom

    4>在开发板上运行uboot,在minicom中观察启动过程
        a>运行minicom
        b>把sd卡插入卡槽(前提是在sd卡中烧写了bootloader)
        c>给开发板上电(或者重启),在minicom中观察启动过程
        d>在启动后,minicom中会有倒计时,在倒计时完成前敲键盘的任意键
        e>敲任意键后板子会进入uboot提供的shell命令行
            [zyli@Uboot]#
        
    5>fastboot刷机
        确保:usb线以及连接
        a>在uboot的shell中执行fastboot
            [zyli@Uboot]# fastboot
        b>在电脑上执行刷机命令
            [ubuntu@Ubuntu]# sudo fastboot devices
            [ubuntu@Ubuntu]# sudo fastboot flash ubootpak ./ubootpak.bin
            [ubuntu@Ubuntu]# sudo fastboot flash boot ./boot.img
            [ubuntu@Ubuntu]# sudo fastboot flash system ./rootfs.ext2
        c>切换到minicom
            在minicom中执行Ctrl+C
            [zyli@Uboot]#
    6>修改环境变量
        目的:告诉告诉开发板内核和根的位置
        注意:以下命令在开发板上(也就是minicom中)执行
        bootloader启动后3s如果没有敲键盘则bootloder会默认执行环境变量bootcmd指定的操作
        [zyli@Uboot]# set bootcmd "ext4load mmc 2:1 0x48000000 uImage;bootm 0x48000000"
        解释:ext4load 命令  从emmc中把文件加载到内存
             uImage 被加载的文件
             mmc 固定
             2:1  2代表第二个设备 板子上有三个mmc设备(sd0, sd1, emmc)
             0x48000000 开发板的内存地址
            
             bootm 命令 启动内核

        注意:接下来要告诉内核根的位置
        [zyli@Uboot]# set bootargs root=/dev/mmcblk0p2 tp=gslx680-linux
        解释:bootargs这个环境变量的值最终会传给内核
             root 指定根的位置
             /dev/mmcblk0p2
            内核启动后会识别emmc,emmc被识别为/dev/mmcblk0     
            两个分区分别被识别为/dev/mmcblk0p1 /dev/mmcblk0p2            
             tp执行触摸屏的类型

        注意:环境变量修改后需要保存
        [zyli@Uboot]# save
    7>重启开发板
        如果正常的话会进入linux系统
        在开发板的屏幕上会出现基于QT5的界面
        在minicom中会出现要求登录的界面(用户名root,密码123456)