SD003_X9H_REF Linux 环境搭建

一、X9H_REF 介绍

1、X9H_REF 介绍

X9H_REF 是南京芯驰半导体科技有限公司推出的一款以 X9-H 为主处理的新一代汽车座舱控制板卡, 旨在加速汽车座舱控制系统的开发速度, 并缩短上市时间, 所有元件按照车规级别要求选型和汽车标准接口设计。

 

参考板如下图:

 



2、X9-H 处理器介绍

X9-H 处理器是专为新一代智能座舱控制系统设计的高性能车规级芯片, 采用双内核异构设计,X9-H 处理器的功能模块主要由三个相互独立的功能域组成:

 

  • 高性能应用处理域, 以下简称“应用域” (ARM Cortex-A55)
  • 高可靠功能安全域, 以下简称“安全域” (ARM Cortex-R5)
  • 低功耗实时时钟与系统控制域, 以下简称“实时时钟域”

 

应用域(ARM Cortex-A55)

应用 CPU

  • 6 个 ARM Cortex-A55 处理器内核
  • 每个内核包含 32KB/32KB L1 I/D Cache
  • 每个内核包含 128KB L2 Cache
  • L1/L2 Cache 具备 ECC 和奇偶校验功能

 

AI 加速

  • 高性能 AI 加速器
  • 支持 TensorFlow/Caffe 等常用 AI 框架

 

数模转换器

  • 12 位逐次逼近型 ADC,5MHz 采样率
  • 4 个模拟输入通道

 

音频接口

  • 4 个 SPDIF 输入/输出
  • 6 个单通道 I2S/TDM
  • 2 个多通道 I2S

 

视频输入接口

  • 2 路 MIPI-CSI, 支持 4 个虚拟通道
  • 1 路 8 位并口 CSI

 

显示接口

  • 2 路 MIPI-DSI 显示接口
  • 4 路 LVDS 显示接口

 

GPU Core

  • IMG PowerVR 9XM GPU

 

片上内存

  • 768KB RAM

 

DRAM 接口

  • 32 位 DRAM 接口, 4267MT/s
  • 支持 LPDDR4/LPDDR4x
  • 支持 DDR4

 

高速接口

  • 2 个0 接口
  • 2 个0 接口, 支持 RC/EP 两种模式

 

视频编解码

  • 264 视频编码/解码
  • 265/VP8/VP9 视频解码

 

存储接口

  • 2 个 1
  • 2 个0/SDIO
  • 1 个 QuadSPI/OctalSPI

 

外设接口

  • 千兆以太网, 支持 TSN
  • 4 个 SPI
  • 8 个 UART
  • 12 个 I2C
  • GPIO
  • PWM
  • 看门狗
  • 定时器

 

 

安全域(ARM Cortex-R5)

安全域 CPU

  • ARM Cortex-R5 处理器, DCLS 模式
  • 32KB/32KB L1 I/D-Cache
  • 64KB/64KB I/D TCM

 

存储接口

  • 1 个 QuadSPI/OctalSPI

 

内存

  • 256KB System RAM
  • 128KB ROM
  • 所有内存均具备 ECC 功能

 

外设接口

  • 2 个 CAN-FD
  • 4 个 SPI
  • 8 个 UART
  • 4 个 I2C
  • GPIO
  • PWM
  • 温度传感器
  • 看门狗
  • 定时器

 

 

低功耗实时时钟域与系统控制域

功能

  • 32KHz 晶振
  • 实时时钟 RTC
  • 系统电源和复位控制
  • 2048 位通用安全存储寄存器

 

 

3、硬件搭建

基本硬件环境搭建如下图所示:

 

 

 

二、镜像编译

1、安装软件

由于编译需要 root 权限,建议在 docker 中搭建 ubuntu16.04 环境来进行编译。

 

(1)安装 git 工具。

apt-get install git

      

(2)安装 repo 工具。

mkdir ~/bin

PATH=~/bin:$PATH

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

chmod a+x ~/bin/repo

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

 

2、安装秘钥

从 SemiDrive 原厂的市场部门获取秘钥并按照步骤安装。

 

修改权限、启动ssh-agent、添加秘钥。

chmod 0400 id_rsa*

eval `ssh-agent`

ssh-add id_rsa

 

3、获取源码

根据 SemiDrive 原厂提供文档中提示使用 repo 获取源码,因原厂文件保密只能如下示例。

repo init -u ssh://地址:端口/路径 -b 分支名

repo sync

 

4、使用 yocto 编译 linux

(1)安装 yocto 所需软件。

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev cpio

 

(2)安装 semidrive 需要软件。

sudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html

 

apt-get install docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils

 

apt-get install libgll-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc

 

apt-get install abootimg

 

(3)安装交叉编译工具

解压编译器到 /tool/,并在 /etc/profile 添加:

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"

      

 使生效。

source /etc/profile

 

修改语言支持。

sudo apt-get install locales

sudo dpkg-reconfigure locales

sudo locale-gen en_US.UTF-8

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

export LANG=en_US.UTF-8

 

配置运行环境设置。

DISTRO=cluster-qt MACHINE=x9h_ref source sd_setup.sh -b build-x9ref

 

确认终端用户授权协议。

y

 

不能使用 root 编译的问题,注释源码下 poky/meta/classes/sanity.bbclass 相关部分。

 

 

编译镜像,编译过程需要下载很多需要的软件,过程会比较慢。

bitbake virtual/kernel

bitbake lk

bitbake safety

bitbake core-image-base

 

编译完成生成的 image 在源码目录中 build-x9ref/tmp/deploy/images/x9h_ref 。

 

 

使用打包工具生成 emmc 的 pac 包。

cd meta-semidrive/scripts/

./make_emmc_pac.sh -m x9h_ref -b build-x9ref

 

使用打包工具生成 ospi 的pac 包。

cd meta-semidrive/scripts/

./make_ospi_pac.sh -m x9h_ref -b build-x9ref

 

生成的 pac 包在 -b 参数指定的 build-x9ref 目录下。

 

 

 

三、镜像下载



1、安装 windows 系统驱动

打开 SDDriverInstall 按照提示安装驱动。

 

 

2、Linux 镜像下载

打开 SDFactoryTool 。

 

点击 “+”按钮添加 pac 包。

 

 

在弹出的对话框中,选中“Load pac in safe mode”,左侧勾选 “ospi1 pac” 和 “emmc1 pac”,下面
选中“Program to EMMC”,点击 “…” 选择打包好的 Linux pac 包,点击OK 之后会有一个加载过程。

 

 

这里是加载的原厂提供的如下两个pac:

“ospi1 pac” 选择带 safety 字样的:x9_high-native-linux-safety.PAC

“emmc1 pac” 选择 :x9_high-native-linux.PAC

 

Demo 板上 J3 拨码开关拨动至如图位置即 1、2、3 拨下,4 拨至ON,将 Demo 板设置成下载模式再接上电源。

 

 

点击下载按钮之后会进入下载状态,一般会在500s之内下载完毕,如果超过500s还没有下完,需要重新尝试下载,
建议直连电脑 U 口,通过 HUB 连接电脑可能会遇到下载过慢的情况。

 


下载完毕之后,断开电源,拨动拨码至如图位置即 1 拨至 ON,2、3、4 拨下,将 Demo

板设置为 EMMC1 启动模式。

 

 

把串口连接至电脑。

 

打开设备管理器,按顺序找到第二个串口,只有这个串口才会打印启动信息,且作为之后的控制台来使用。

 

 

我这里使用 putty 来连接,填入如上图第二个串口号COM17,波特率 115200。

 

 

打开串口之后,再给 Demo 板连接电源,会看到系统启动的 log ,并进入 linux 的

控制台,打印出如下 log。

 

 

显示器显示如图, 左侧宽屏不显示,上面的小屏显示仪表盘,下面的小屏显示控制台信息,可以接键盘直接进行交互操作。


注意:

由于原厂提供的和自己编译得到的镜像分别下载进去,Demo 板状态不一样,下面是

自己编译得到的镜像下载到 Demo 板的状态。

 

这里加载的是自己编译得到的两个pac:

“ospi1 pac” 选择带 safety 字样的:ospi_safety.pac

“emmc1 pac” 选择 :global.pac

 

 

下载步骤一致,这里不再赘述,下载完毕,再给 Demo 板连接电源,串口可以看到系统启动的 log ,并进入 linux 的控制台,
打印的 log 和原厂提供的是一致的。






参考资料
[1] SD_X9_PTG3.2_Quick_Start.pdf

[2] SD_X9_PTG3.2_release_notes.pdf

[3] SD_X9_PTG3.2_User_Manual.pdf

 

下一篇:SD003_X9H_REF Android 环境搭建

 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

mm11751

mm11751

2022年7月11日
可以留个联系方式吗? 有问题请教谢谢
mm11751

mm11751

2022年7月11日
可以留个联系方式吗? 有问题请教谢谢
mm11751

mm11751

2022年7月11日
可以留个联系方式吗? 有问题请教谢谢