开发板介绍
硬件描述
- 主控芯片: 星辰科技 SSD202D 内置128MB DDR 支持H264/H265解码 支持MJPG编码。
- 存储:板载128MB SPI NAND FLASH芯片 以及专门的SD card接口
- LED灯:红色x1 表示pwr 蓝色 绿色 均为用户灯。
- Key:硬件复位按键x1 用户按键x1
- 显示:50Pin FPC RGB888显示输出
- 供电&调试:板载专用USB转TTL芯片同时给整个板子供电。
- usbHost: TypeC接口的USB HOST 支持连接支持USB协议的设备。
- 扩展接口: 使用MINI-PCI-E接口 用于连接底板。
开发资源描述
名称 | 介绍 |
---|---|
boot | 存放适配好的uboot的源码 |
kernel | 存放适配好的linux kernel的源码 |
project | 主要用于打包可供升级的image包 |
sdk | 存放一些简单的demo code |
开发环境搭建
基于Ubuntu18.04
1、SDK编译tool1
tool安装
sudo apt-get install -y libc6-dev-i386 lib32z1 lib32ncurses5 libuuid1:i386 cmake libncurses5-dev libncursesw5-dev bc xz-utils automake libtool libevdev-dev pkg-config openssh-server repo
修改sh为bash
sudo rm /bin/sh
sudo ln –s /bin/bash /bin/sh
2、源码获取
使用repo管理多个git仓库,
git clone https://e.coding.net/codebug8/repo.git
mkdir DongshanPiOne-TAKOYAKI && cd DongshanPiOne-TAKOYAKI
../repo/repo init -u https://gitee.com/weidongshan/manifests.git -b linux-sdk -m SSD202D/dongshanpi-one_takoyaki_dlc00v030.xml --no-repo-verify
../repo/repo sync -j4
获取成功后的源码目录结构如下
book@virtual-machine:~/DongshanPiOne-TAKOYAKI$ tree -L 1
.
├── boot //使用的是uboot-2015 主要用于烧写引导kernel启动。
├── DevelopmentEnvConf //自动配置开发环境的一些脚本文件
├── gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf //交叉编译工具链。
├── kernel //使用4.9.88版本的内核
├── project //根文件系统和应用相关源码,主要包含了 编译构建根文件系统 APP 并自动打包生成合适的格式用来烧写。
└── sdk
3、配置编译环境
设置交叉编译工具链
修改 ~/.bashrc 在行尾添加
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export PATH=$PATH:/home/book/DongshanPiOne-TAKOYAKI/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin
添加完成后执行
source ~/.bashrc
验证交叉工具链
arm-linux-gnueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/home/book/DongshanPiOne-TAKOYAKI/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin/../libexec/gcc/arm-linux-gnueabihf/8.2.1/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: /tmp/dgboter/bbs/bc-b1-2-11--rhe6x86_64/buildbot/rhe6x86_64--arm-linux-gnueabihf/build/src/gcc/configure --target=arm-linux-gnueabihf --prefix= --with-sysroot=/arm-linux-gnueabihf/libc --with-build-sysroot=/tmp/dgboter/bbs/bc-b1-2-11--rhe6x86_64/buildbot/rhe6x86_64--arm-linux-gnueabihf/build/build-arm-linux-gnueabihf/install//arm-linux-gnueabihf/libc --enable-gnu-indirect-function --enable-shared --disable-libssp --disable-libmudflap --disable-libsanitizer --enable-checking=release --enable-languages=c,c++,fortran --with-gmp=/tmp/dgboter/bbs/bc-b1-2-11--rhe6x86_64/buildbot/rhe6x86_64--arm-linux-gnueabihf/build/build-arm-linux-gnueabihf/host-tools --with-mpfr=/tmp/dgboter/bbs/bc-b1-2-11--rhe6x86_64/buildbot/rhe6x86_64--arm-linux-gnueabihf/build/build-arm-linux-gnueabihf/host-tools --with-mpc=/tmp/dgboter/bbs/bc-b1-2-11--rhe6x86_64/buildbot/rhe6x86_64--arm-linux-gnueabihf/build/build-arm-linux-gnueabihf/host-tools --with-isl=/tmp/dgboter/bbs/bc-b1-2-11--rhe6x86_64/buildbot/rhe6x86_64--arm-linux-gnueabihf/build/build-arm-linux-gnueabihf/host-tools --with-arch=armv7-a --with-fpu=neon --with-float=hard --with-arch=armv7-a --with-pkgversion='GNU Toolchain for the A-profile Architecture 8.2-2018-08 (arm-rel-8.23)'
Thread model: posix
gcc version 8.2.1 20180802 (GNU Toolchain for the A-profile Architecture 8.2-2018-08 (arm-rel-8.23))
Boot编译烧写
1、boot编译
进入boot目录下
make infinity2m_spinand_defconfig
make -j8
生成的镜像文件
u-boot_spinand.xz.img.bin
注意:如果需要打包 编译出来的镜像到最终的完整系统内则 需要讲生成的文件拷贝到project目录:
cp u-boot_spinand.xz.img.bin project/board/i2m/boot/spinand/uboot/
2、烧写
1)使用Uboot烧写
这种烧写方式是在您的开发板还可以正常启动,可以进入到uboot命令行内。
首先将编译好的镜像拷贝到sd卡内, 之后开发板上电,在串口有输出时一直长按键盘 Enter 键3秒左右 之后放开就可以进入到开发板显示Sigma时即进入uboot命令行, 最后执行如下命令更新。
fatload mmc 0:1 0x21000000 u-boot_spinand.xz.img.bin
nand erase.part UBOOT0
nand write.e 0x21000000 UBOOT0 ${filesize}
nand erase.part UBOOT1
nand write.e 0x21000000 UBOOT1 ${filesize}
2)使用外部工具烧写
将烧写工具连接好烧录线后,将烧录器和开发板烧写接口连接好,拨码开关切换为烧写模式(拨码开发白色拨码切换到非NO方向)。
之后我们按下 主板上Reset键,同时执行如下烧写命令,其中第一句话sudo SNANDer -p mstarddc -c /dev/i2c-0:49 -e是整个 擦除 flash 命令,建议执行。
烧写操作是在ubuntu-18烧写,需要将烧写工具挂载到ubuntu系统内,挂载成功后系统会自动装在驱动模块,此时设备管理器会多出一个/dev/i2c-0的设备节点,其中烧写命令中 -l参数指定的是烧写文件的长度(大小),如果你修改了u-boot_spinand.xz.img.bin文件,请确认大小是否在这个区间内。
sudo SNANDer -p mstarddc -c /dev/i2c-0:49 -e
sudo SNANDer -p mstarddc -c /dev/i2c-0:49 -w GCIS.bin
sudo SNANDer -p mstarddc -c /dev/i2c-0:49 -a 0x140000 -l 0x6000 -w IPL.bin
sudo SNANDer -p mstarddc -c /dev/i2c-0:49 -a 0x200000 -l 0x5800 -w IPL_CUST.bin
sudo SNANDer -p mstarddc -c /dev/i2c-0:49 -a 0x2C0000 -l 0x3B800 -w u-boot_spinand.xz.img.bin
Kernel编译烧写
1、Kernel编译
进入kernel根目录
make infinity2m_spinand_ssc011a_s01a_minigui_defconfig;
make clean
make -j8
NandFlash镜像文件
arch/arm/boot/uImage.xz
如果需要将编译出来的镜像最终打包放到一个完整的镜像内需要拷贝到project目录:
project\release\nvr\i2m\011A\glibc\8.2.1\bin\kernel\spinand
2、Kernel烧写
uboot内烧写
首先将编译好的镜像拷贝到sd卡内, 之后开发板上电,在串口有输出时一直长按键盘 Enter 键3秒左右 之后放开就可以进入到开发板显示Sigma时即进入uboot命令行, 最后执行如下命令更新。
fatload mmc 0:1 0x21000000 uImage.xz
nand erase.part KERNEL
nand write.e 0x21000000 KERNEL ${filesize}
nand erase.part RECOVERY
nand write.e 0x21000000 RECOVERY ${filesize}
系统编译烧写
1、系统编译
进入project根目录下
./setup_config.sh ./configs/nvr/i2m/8.2.1/spinand.glibc.011a.128
make image
生成image,目录:
project/image/output/images
拿到生成的image后,参照烧录文档/母片制作文档烧录到板子即可。