HaloOS 基于TC397学习笔记

文章目录
- [HaloOS 基于TC397学习笔记](#HaloOS 基于TC397学习笔记)
- 前言
- 一、Python、Git和工程下载
-
- [1. 安装Python 3.8.10](#1. 安装Python 3.8.10)
- [2. 安装git repo工具](#2. 安装git repo工具)
- [3. 下载代码](#3. 下载代码)
- 二、编译环境搭建
-
- [1. 安装VCOS Studio配置工具依赖插件](#1. 安装VCOS Studio配置工具依赖插件)
- [2. 安装VCOS Studio配置工具依赖插件](#2. 安装VCOS Studio配置工具依赖插件)
- [2. 下载TC397驱动](#2. 下载TC397驱动)
- 三、Demo编译
-
- [1. 查看TC397支持的demo](#1. 查看TC397支持的demo)
- [2. 把默认E3650的demo改为TC397开发板](#2. 把默认E3650的demo改为TC397开发板)
- [3. 查看编译生成的文件,烧写elf](#3. 查看编译生成的文件,烧写elf)
- 参考
前言
想学习一下DDS协议栈在TC397上的部署和应用,看到理想的星环OS做了DDS协议栈的裁剪:
- 星环OS通信中间件基于车载场景实现定制化的DDS通信协议,实现面向 MCU 的轻量化设计
刚好又在gitee上开源了,所以花了一下午时间部署了一下环境,虽然官网文档已经写得很详细了,但是有些内容也比较分散或者已经过期没有更新(比如TC397 illd库的安装部分),所以我简单记录下我自己的部署过程。
本文只针对TC397和Windos,删减掉了E3芯片和Linux的部分。
https://gitee.com/haloos/docs/tree/master
一、Python、Git和工程下载
1. 安装Python 3.8.10
我是用的anaconda管理的python版本,下载链接如下:
下载完成后一般会有一个base的环境,

需要安装一个与HaloOS相同的python版本:
创建虚拟环境:
bash
conda create -n py38_10_HaloOS python=3.8.10
- python3.8安装过程中间会出现Proceed(y/n)?
需要输入一个y,然后按回车键
激活虚拟环境:
bash
conda activate py38_10_HaloOS
前面显示环境名称说明创建成功:

直接打开Powershell的话,也可以执行这一条
bash
conda activate py38_10_HaloOS

2. 安装git repo工具
这里参考原文:
(1)安装Git:
https://git-scm.com/install/windows
(2)添加环境路径
- 找到Git所在的安装路径,添加\usr\bin后就是patch.exe所在路径(例如:C:\Program Files\Git\usr\bin)
- 按 Win + S 搜索 "环境变量" → 选择 "编辑系统环境变量"
- 在 "用户变量" 中找到 Path → 点击 "编辑" → "新建" → 添加上述patch路径 → 保存
用管理员权限重启PowerShell,执行patch --version,输出版本号即表示安装成功
git repo的安装流程如下:
(3)下载 git repo 工具并解压
-
将解压后的git-repo.exe拷贝到git安装目录cmd路径下(如C:\Program Files\Git\cmd,注意该路径安装git时已经添加进环境变量,如果没有添加,需要执行以下步骤3~5)
-
按 Win + S 搜索 "环境变量" → 选择 "编辑系统环境变量"
-
在 "用户变量" 中找到 Path → 点击 "编辑" → "新建" → 添加上述cmd路径 → 保存
-
重启 PowerShell 并运行以下命令,如果显示版本号即安装成功
bash
git --version # 应输出版本信息
git-repo --version # 应输出版本信息

3. 下载代码
(1)生成/添加ssh密钥,请按gitee ssh密钥添加流程(如果没有gitee帐号可能需要先注册)
(2)配置Git:
bash
git config --global user.name "替换为您的名字"
git config --global user.email "替换为您的邮箱"
(3)切换到您存放代码的目录下,运行如下脚本下载代码(我放在了D:\04Code\python下)
bash
cd D:\04Code\python # 把当前目录切换到D:\04Code\python
mkdir haloosspace # 新建haloosspace文件夹
cd haloosspace # 进入haloosspace文件夹
rm -r ./.repo/ # 如此前有同步失败,需要先删除原有.repo目录;如果没有.repo目录,可以忽略此步骤
git-repo init -u git@gitee.com:haloos/manifests.git -b master -m default.xml
git-repo sync
网络不好的时候git-repo这两行命令很容易报错,很多公司的网络也屏蔽22端口导致拉取失败,需要注意。
sync同步到最后还是有个Error,暂时没发现有什么影响。
bash
Updating files: 100% (23327/23327), done.
Note: switching to '62072a67095c81d34b7a62697d4543cd1176296e'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 62072a67 update .gitignore
Error: exit status 1
(py38_10_HaloOS) PS D:\04Code\python\haloosspace>
二、编译环境搭建
1. 安装VCOS Studio配置工具依赖插件
在根目录haloosspace下,执行以下命令(管理员权限、python3.8.10环境)
bash
python ./vcos/vcos_studio/configurator/init_env.py -a
2. 安装VCOS Studio配置工具依赖插件
在根目录haloosspace下,执行以下命令(管理员权限、python3.8.10环境)
bash
python ./build/haloos_compiling_env.py
这一行指令会安装7z、CMake、Ninja、Make、Tricore GCC、ARM GCC和一些Python的依赖,并把这些工具添加到环境变量里,我当时有一些安装失败了,但是会提示自己手动如何安装,有一些是在gitee库里,可以按照失败的指引自己手动装。
2. 下载TC397驱动
这里说实话官方的指导有点问题,ADS这个软件后面有过更新,生成iLLD驱动库删减了一些.c .h,并且文件夹的命名也有更改,代码编译过程中会出现各种头文件路径找不到等报错:
https://gitee.com/haloos/vcos/blob/master/quick_start/01_downloading.md

Gitee issue中有人提到过这个问题,https://gitee.com/haloos/vcos/issues/ID6DOS?from=project-issue
可以用评论区的这个文件直接下载:
- lljwork2021:
通过网盘分享的文件:tc397.zip
链接: https://pan.baidu.com/s/18gbvzWYjy9BGkEiZFyNisA 提取码: 1234
下载完成后,把tc397文件夹放在drivers下:
- haloosspace\vcos\vendor\infineon\drivers
三、Demo编译
1. 查看TC397支持的demo
官网文档提供了这几个demo:
每个demo也有各自的说明书(我暂时还没看,先编译成功再说):

2. 把默认E3650的demo改为TC397开发板
改一下json文件就可以:

进入build文件夹:
bash
cd D:\04Code\python\haloosspace\build # 根据自己的路径修改
编译rt_demo:
bash
python haloos_build.py -app_name rt_demo
编译isolate_demo:
bash
python haloos_build.py -app_name isolate_demo
编译mempool_demo:
bash
python haloos_build.py -app_name mempool_demo
vbslite_demo目前编译有问题:


编译过程有时候会提前结束并提示:
bash
Kconfig environment depends on kconfiglib, Please install:
$ pip install kconfiglib
-- Configuring incomplete, errors occurred!
就直接pip这个kconfiglib的库就可以了
3. 查看编译生成的文件,烧写elf
编译的过程文件都在output目录下:

每个项目都可以找到自己的elf:

最后用自己的调试器烧写即可。
参考
感谢开源:
