一、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 环境搭建
评论
mm11751
2022年7月11日
mm11751
2022年7月11日
mm11751
2022年7月11日