短笛君 发表于 2024-4-13 05:52:52

【米尔-芯驰D9车规级开发板】搭建编译环境&&构建Ubuntu镜像...

本帖最后由 satoll 于 2024-5-28 11:02 编辑

本期帖子来讲解下如何为芯驰D9360构建Ubuntu镜像并运行跑分测试

## 开发环境搭建

> ==强烈建议编译系统使用Ubuntu18.04,否则会出现包括python版本过高在内的各种莫名其妙的问题,导致编译出错==

### 安装依赖 

我进行开发的系统环境,安装在物理机上的Ubuntu,不推荐在虚拟机中操作

!(https://img2.imgtp.com/2024/04/13/0Fm1srQs.png)

```bash
sudo apt-get update

sudo apt install -y git gnupg flex bison gperf build-essential zip curl libc6-de
v libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 lib
gl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib tofrodos python markdown libx
ml2-utils xsltproc zlib1g-dev:i386 gawk texinfo gettext build-essential gcc libncurs
es5-dev bison flex zlib1g-dev gettext libssl-dev autoconf libtool linux-libc-dev:i38
6 wget patch dos2unix tree
sudo apt-get install libsdl1.2-dev xterm sed cvs subversion
coreutils texi2html docbook-utils python-pysqlite2 help2man make
gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev
mercurial autoconf automake groff curl lzop asciidoc abootimg bison
flex device-tree-compiler

sudo dpkg-reconfigure dash #选择 no
sudo apt-get install zlib1g-dev # 缺失 libz.so 时安装
```

###  安装交叉编译工具链

	        米尔已经在开发资料中提供了SDK包和交叉编译工具链,因此我们可以直接引用

将SDK拷贝到工作目录中,并解压

> 。由于芯驰 sdk 编译指定的编译链路径为/tool 目 录,所以需要新建/tool 目录:
>
> ```bash
> sudo mkdir -p /tool
> ```

将解压到主机的/tool 目录下

```bash
cd $HOME/MYD-JD9X
tar -xvf gcc_linaro_7.3.tar.gz -C /too
```

为方便设置编译链,我们提供一个设置脚本 env.sh,如下

```bash
export PATH=$PATH:/tool/gcc_linaro/gcc-arm-none-eabi-7.3.1/bin:/tool/gcc_linaro/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-elf/bin:/tool/gcc_linaro/gcc-linaro-7.3. 1-2018.05-x86_64_aarch64-linux-gnu/bin
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu- export PREFIX=aarch64-linux-gnu- export AS=aarch64-linux-gnu-as
export LD=aarch64-linux-gnu-ld
export CC=aarch64-linux-gnu-gcc
export AR=aarch64-linux-gnu-ar
export NM=aarch64-linux-gnu-nm
export STRIP=aarch64-linux-gnu-strip
export OBJCOPY=aarch64-linux-gnu-objcopy
export OBJDUMP=aarch64-linux-gnu-objdump
```

设置环境变量,并测试安装是否完成

```bash
source env.s
aarch64-linux-gnu-gcc -v
```

!(https://img2.imgtp.com/2024/04/13/ZNqTvWd0.png)

!(https://img2.imgtp.com/2024/04/13/KMMG2GB5.png)

和图上一致就说明开发环境搭建没有问题

## 使用SDK构建开发板Ubuntu系统

米尔提供的SDK中,集成了 BSP、构建系统、linux 应用、测试系统、独立 IP、工 具和文档,既可作为 BSP、IP 的开发、验证和发布平台,也可作为嵌入式 Linux 系统

Linux SDK 的功能包括以下四部分:  BSP 开发,包括 bootloader,uboot 和 kernel。  Linux 文件系统开发,包括量产的嵌入式 linux 系统。  IP 的验证和发布平台,并且给出 IP 的使用方法和系统集成的 demo 程序,方便 第三方快速使用。  测试,包括板级测试和系统测试

因此我们直接使用该SDK进行构建镜像,以此来测试开发板的功能。犹豫米尔已经事先写好构建脚本,移植了驱动,因此我们使用该SDK构建可以节省我们移植驱动的时间

压缩的源码包位于米尔开发包资料 04-Sources/MYD-JD9X-SDK\_V1.0.7z。拷贝压缩 包到用户指定目录,如\$HOME/MYD-JD9X 目录,这个目录将作为后续构建的顶层目录, 按照下面的方式解压后出现 SDK 所有内容

本次注重于构建系统,暂不浏览SDK结构,放在后面详解

!(https://img2.imgtp.com/2024/04/13/1T96tUhW.png)

在该目录下右键打开终端,首先source一下我们的env脚本设置交叉编译链

```bash
source env.sh
```

进入 SDK 目录,执行./build.sh config 工程配置, 选择 board、 project、 启动方式和 内核版本。 然后执行./build.sh 完成编译和打包, 镜像生成到 out 目录。 下面以 D9 为例 说明编译过程

进入 SDK 目录,执行 build.sh config 命令

```bash
./build.sh config
```

!(https://img2.imgtp.com/2024/04/13/OehBOgG7.png)

选择图中配置,构建Ubuntu镜像

设置完成后,开始构建镜像

```bash
./build.sh
```

只需执行 build.sh‘

!(https://img2.imgtp.com/2024/04/13/2PeLmOhi.png)

电脑开始全核跑满开始编译,大概需要5分钟左右即可编译完成系统

出现如下界面代表系统编译完成

!(https://img2.imgtp.com/2024/04/13/SXKNwFFk.png)

提示系统构建PACK成功,在out目录下

## 烧录&&启动

> ==miri的烧录拨码开关ON代表0OFF代表1!!!==

比较让人恼火

!(https://img2.imgtp.com/2024/04/13/c7cwWLf8.png)

> 烧录时候 串口会打印出相关信息

!(https://img2.imgtp.com/2024/04/13/y9rYGukc.png)

> 烧录完成后,将拨码开关拨回emmc启动,即可看到系统Boot已经正常启动
>
> 打断boot

!(https://img2.imgtp.com/2024/04/13/FZEnWazz.png)

系统相关信息展示了RAM大小,系统内核, 图上展示了Uboot的编译时间 2024年4月12日 

查询支持的Uboot命令

!(https://img2.imgtp.com/2024/04/13/dZLwtK8H.png)

至此,我们输入boot,进入正常引导

!(https://img2.imgtp.com/2024/04/13/ewvdvgr4.png)

出现如下界面就证明已经正常进入Ubuntu系统了

## 板中编译CoreMark进行测试

**CoreMark**是用来衡量嵌入式系统中中心处理单元(CPU,或叫做微控制器MCU)性能的标准。**CoreMark是用来衡量CPU性能的标准**。该标准于2009年由EEMBC组织的Shay Gla-On提出,并且试图将其发展成为工业标准,从而代替陈旧的Dhrystone标准。

与Dhrystone一样,**CoreMark小巧,便携,易于理解,免费,并且显示单个数字基准分数**。与Dhrystone不同,CoreMark具有特定的运行和报告规则,旨在避免Dhrystone的问题。

**CoreMark跑分是通过运行C语言代码得出来的分数**。主要包含如下的运算法则:列举(寻找并排序),数学矩阵操作(普通矩阵运算)和状态机(用来确定输入流中是否包含有效数字),最后还包括CRC(循环冗余校验)。

也就是说CoreMark是使用一套用C语言编辑的测试代码,我们通过运行这套代码就能测试你MCU的性能。

首先下载CoreMare源码,并解压到板卡中

> ```html
> https://github.com/eembc/coremark
> ```

!(https://img2.imgtp.com/2024/04/13/JmkWKv9H.png)

使用make命令编译coremark源码

!(https://img2.imgtp.com/2024/04/13/KVwrGeYs.png)

编译完成

直接执行./coremark.exe开始测试

测试结果如下

!(https://img2.imgtp.com/2024/04/13/Mn0YnZv4.png)

该性能为6核A55测试结果,在CoreMark的官方排行榜中,该结果大致与英特尔N2860结果相当
性能表现还是不错的,就是发热表现需要改善下

短笛君 发表于 2024-9-17 12:17:32

eefocus_4016576 发表于 2024-7-22 16:59
推荐物理机是因为虚拟机有可能出现环境问题吗

操作方便 编译更快

eefocus_4016576 发表于 2024-7-22 16:59:20

推荐物理机是因为虚拟机有可能出现环境问题吗

短笛君 发表于 2024-5-31 22:21:19

eefocus_3914144 发表于 2024-4-19 06:01
默认的密码是多少呀

默认密码是12345678 编译出来的镜像
光放提供的Ubuntu镜像是root
可以在buildroot配置界面选择无密码

eefocus_3914144 发表于 2024-4-19 06:01:54

默认的密码是多少呀
页: [1]
查看完整版本: 【米尔-芯驰D9车规级开发板】搭建编译环境&&构建Ubuntu镜像...

Baidu
map