英飞凌TC39x系列微控制器是汽车电子领域的高性能处理器,广泛应用于发动机控制、车身电子、安全系统等场景。本教程将详细介绍如何使用Tasking编译器和CMake构建系统来配置和管理TC39x项目,并搭建完整的CI/CD流程,让新手也能轻松上手。
备注:结合与多位工程师线下/线上的交流和平台资料,写的这篇教程,如有错误之处,请批评指正。需要许可证,安装包等内容,请与我们联系 support@softor.com.cn

在英飞凌TC39x项目开发中,主要有两种构建方式:使用 tasking IDE和使用CMake命令行构建。下面详细对比这两种方式的优缺点。
优点:
| 优点 | 说明 |
|---|---|
| 图形化界面友好 | 提供直观的图形界面,适合初学者快速上手 |
| 项目管理便捷 | 通过项目浏览器可以方便地管理源文件、头文件和库文件 |
| 代码编辑功能强大 | 集成代码高亮、自动补全、语法检查等功能 |
| 调试功能完善 | 集成调试器,支持断点、单步执行、变量查看等 |
| 一键构建 | 点击按钮即可完成编译、链接和生成可执行文件 |
| 配置可视化 | 编译选项、链接选项等都可以通过图形界面配置 |
| 多工程管理 | 可以同时打开多个工程,方便切换和对比 |
| 代码生成集成 | 支持从Simulink等工具自动生成代码 |
缺点:
| 缺点 | 说明 |
|---|---|
| 依赖IDE环境 | 必须在安装了ide的环境中才能编译,无法在服务器上运行 |
| 自动化困难 | 难以集成到CI/CD流程,无法实现自动化构建 |
| 版本控制冲突 | IDE生成的配置文件容易产生版本控制冲突 |
| 构建效率较低 | 图形界面占用资源,构建速度相对较慢 |
| 配置不透明 | 编译选项隐藏在IDE配置中,难以追踪和复现 |
| 批量构建困难 | 无法方便地批量构建多个项目或多个配置 |
优点:
| 优点 | 说明 |
|---|---|
| 跨平台支持 | 支持Windows、Linux、macOS等多个平台 |
| 自动化友好 | 可以轻松集成到CI/CD流程,实现自动化构建 |
| 构建效率高 | 命令行构建速度快,资源占用少 |
| 配置透明 | 所有编译选项都在CMakeLists.txt中,清晰可见 |
| 版本控制友好 | 配置文件是文本文件,易于版本控制 |
| 批量构建 | 可以方便地批量构建多个项目或多个配置 |
| 灵活可扩展 | 可以轻松添加自定义构建步骤和脚本 |
| 并行构建 | 支持多核并行编译,大幅提高构建速度 |
| 服务器部署 | 可以在无图形界面的服务器上运行 |
| 工具链灵活 | 可以方便地切换不同的编译器和工具链 |
| 社区支持 | CMake有庞大的社区支持和丰富的文档 |
缺点:
| 缺点 | 说明 |
|---|---|
| 学习曲线陡峭 | 需要学习CMake语法和命令行操作 |
| 配置复杂 | 初次配置需要编写CMakeLists.txt和工具链文件 |
| 调试不便 | 需要额外配置调试器,不如IDE集成方便 |
| 缺少图形界面 | 没有直观的图形界面,对初学者不友好 |
| 错误定位困难 | 编译错误信息不如IDE直观,需要手动定位 |
| 依赖管理 | 需要手动管理依赖和包含路径 |
| 代码编辑 | 需要配合其他代码编辑器使用 |
| 缺少IDE功能 | 没有代码高亮、自动补全等功能 |
| 对比项 | ADS IDE | CMake |
|---|---|---|
| 学习难度 | ⭐ 简单 | ⭐⭐⭐⭐ 较难 |
| 开发效率 | ⭐⭐⭐⭐ 高 | ⭐⭐⭐ 中等 |
| 构建速度 | ⭐⭐⭐ 中等 | ⭐⭐⭐⭐⭐ 快 |
| 跨平台 | ⭐⭐ 有限 | ⭐⭐⭐⭐⭐ 优秀 |
| 自动化 | ⭐ 困难 | ⭐⭐⭐⭐⭐ 优秀 |
| 调试功能 | ⭐⭐⭐⭐⭐ 完善 | ⭐⭐ 需配置 |
| 版本控制 | ⭐⭐⭐ 中等 | ⭐⭐⭐⭐⭐ 优秀 |
| CI/CD集成 | ⭐ 困难 | ⭐⭐⭐⭐⭐ 优秀 |
| 团队协作 | ⭐⭐⭐ 中等 | ⭐⭐⭐⭐⭐ 优秀 |
| 成本 | ⭐⭐⭐ 需要IDE许可证 | ⭐⭐⭐⭐⭐ 免费 |
使用TASKING IDE的场景:
使用CMake的场景:
在实际项目中,可以结合两种方式的优点:
这种混合方案可以兼顾开发效率和自动化需求,是实际项目中的最佳实践。
| 软件名称 | 版本要求 | 用途 | 下载来源 |
|---|---|---|---|
| CMake | 3.15+ | 构建系统 | CMake官网 |
| MinGW | 最新版 | Windows环境下的GNU工具链 | MinGW官网 |
| Git | 最新版 | 版本控制 | Git官网 |
| Tasking TriCore编译器 | 6.3r1+ | TriCore架构专用编译器 | 英飞凌官网或Tasking官网 |
| Aurix Development Studio (ADS) | 1.9.20+ | 集成开发环境 | 英飞凌官网 |
D:\Downloads)C:\Tasking\TriCore6.3r1\ctc)ctc -VPath变量,点击”编辑”C:\Tasking\TriCore6.3r1\ctc\bin)C:\Program Files\CMake\bin)C:\mingw64\bin)cctc -vcmake --versiongcc --version| 文件名 | 用途 | 重要性 |
|---|---|---|
| CMakeLists.txt | 主构建配置文件 | ⭐⭐⭐⭐⭐ |
| tasking_tricore.cmake | Tasking编译器工具链配置 | ⭐⭐⭐⭐⭐ |
| win.ps1 | Windows环境构建脚本 | ⭐⭐⭐⭐ |
| .gitlab-ci.yml | CI/CD配置文件 | ⭐⭐⭐⭐ |
| Lcf_Tasking_Tricore_Tc.lsl | Tasking链接脚本 | ⭐⭐⭐⭐ |
| Cpu0_Main.c | CPU0核心主函数 | ⭐⭐⭐ |
| Cpu1_Main.c – Cpu5_Main.c | 其他CPU核心主函数 | ⭐⭐⭐ |
tc397_min_project/
├── .tasking/ # 项目配置文件
├── .settings/ # IDE设置
├── Configurations/ # 配置文件
│ ├── Debug/ # 调试配置
│ ├── Ifx_Cfg.h # 全局配置头文件
│ └── Ifx_Cfg_Ssw.c # 系统启动配置
├── Libraries/ # 库文件
│ ├── Infra/ # 基础架构库
│ ├── Service/ # 服务库
│ └── iLLD/ # 英飞凌低级别驱动库
├── CMakeLists.txt # 主构建文件
├── tasking_tricore.cmake # 工具链配置
├── win.ps1 # Windows构建脚本
├── .gitlab-ci.yml # CI配置
├── Lcf_Tasking_Tricore_Tc.lsl # 链接脚本
└── Cpu0_Main.c # CPU0主函数
set(CMAKE_SYSTEM_NAME Generic)
# 查找Tasking编译器和汇编器
find_program(COMPILER_C cctc PATHS ENV TOOLCHAIN_ROOT PATH_SUFFIXES bin)
find_program(COMPILER_ASM astc PATHS ENV TOOLCHAIN_ROOT PATH_SUFFIXES bin)
# 设置编译器
set(CMAKE_C_COMPILER ${COMPILER_C})
set(CMAKE_CXX_COMPILER ${COMPILER_C})
set(CMAKE_ASM_COMPILER ${COMPILER_ASM})
# 设置查找模式
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
# 编译选项
add_compile_options(
--misrac-version=2012
-D__CPU__=tc39xb # 定义CPU类型
--iso=99 # 使用C99标准
--c++14 # 使用C++14标准
--language=+volatile # 支持volatile关键字
--exceptions # 启用异常
--anachronisms # 允许使用过时的语法
--fp-model=3 # 浮点模型
-O0 # 优化级别
--tradeoff=4 # 代码优化权衡
-Wc-w544 -Wc-w557 # 禁用特定警告
-Ctc39xb # CPU类型
)
# 链接选项
add_link_options(
-d${PROJECT_SOURCE_DIR}/Lcf_Tasking_Tricore_Tc.lsl
-Wl-mc -Wl-mf -Wl-mi -Wl-mk -Wl-ml -Wl-mm -Wl-md -Wl-mr -Wl-mu
-Wl--error-limit=42 # 错误限制
--fp-model=3 # 浮点模型
--lsl-core=vtc # 链接脚本核心
--strict # 严格模式
--anachronisms # 允许过时语法
--force-c++ # 强制C++模式
-Ctc39xb # CPU类型
--format=ihex # 输出HEX格式
)
# 要求CMake版本
cmake_minimum_required(VERSION 3.15)
# 定义项目名称和支持的语言
project(tc397_min_project LANGUAGES CXX C ASM)
# 排除目录
set(EXCLUDE_DIRS "build" "TriCore Debug (TASKING)" "TriCore Release (TASKING)")
# 源文件
set(EXCLUDE_FILES "ert_main.c")
file(GLOB_RECURSE SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/*.c
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/*.cc
)
# 排除指定目录的文件
foreach(_dir IN ITEMS ${EXCLUDE_DIRS})
file(GLOB_RECURSE FILES RELATIVE ${PROJECT_SOURCE_DIR} "${_dir}/*")
list(FILTER SOURCES EXCLUDE REGEX "${_dir}/.*")
endforeach()
# 排除指定文件
foreach(_file IN ITEMS ${EXCLUDE_FILES})
list(FILTER SOURCES EXCLUDE REGEX "${_file}")
endforeach()
# 包含目录
set(INCLUDE_DIRS "")
file(GLOB_RECURSE FILES RELATIVE ${PROJECT_SOURCE_DIR} "*.h")
foreach(_dir IN ITEMS ${EXCLUDE_DIRS})
list(FILTER FILES EXCLUDE REGEX "${_dir}/.*")
endforeach()
# 收集所有头文件目录
foreach(_source IN ITEMS ${FILES})
get_filename_component(_source_path "${_source}" PATH)
string(REPLACE "/" "\\" _source_path_msvc "${_source_path}")
list(APPEND INCLUDE_DIRS "${_source_path}")
# 收集上级目录
while(NOT "${_source_path}" STREQUAL "")
get_filename_component(_source_path "${_source_path}" DIRECTORY)
list(APPEND INCLUDE_DIRS "${_source_path}")
endwhile()
endforeach()
# 添加根目录
list(APPEND INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}")
# 去重
list(REMOVE_DUPLICATES INCLUDE_DIRS)
# 创建可执行文件
add_executable(${PROJECT_NAME}
${SOURCES}
)
# 设置链接语言
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE C)
# 设置包含目录
target_include_directories(${PROJECT_NAME} PUBLIC ${INCLUDE_DIRS})
# 构建后复制ELF为HEX
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.hex
# COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.elf
)
win.ps1是一个PowerShell脚本,用于在Windows环境下自动化构建TC39x项目。它提供了三个主要功能:构建项目、清理构建文件和显示帮助信息。下面详细解析脚本的每个部分:
function Build {
$startTime = Get-Date
$exePath = (Get-Command cctc.exe).Source
$env:TOOLCHAIN_ROOT = (Split-Path (Split-Path $exePath -Parent) -Parent).Replace("\", "/")
Write-Host "TOOLCHAIN_ROOT: $env:TOOLCHAIN_ROOT"
if (!(Test-Path -Path "build")) {
New-Item -Path "build" -ItemType "directory" -ErrorAction SilentlyContinue
}
# cross-compiling toolchain
$env:CMAKE_TOOLCHAIN_FILE = "$PSScriptRoot\tasking_tricore.cmake"
Write-Host "CMAKE_TOOLCHAIN_FILE: $env:CMAKE_TOOLCHAIN_FILE"
cmake -B build -G "MinGW Makefiles" .
$totalLogicalCores = ( `
(Get-CimInstance -ClassName Win32_Processor).NumberOfLogicalProcessors | `
Measure-Object -Sum `
).Sum
cmake --build build -- -j $totalLogicalCores
# if cmake or make failed, exit with the same error code
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
$endTime = Get-Date
$timeSpan = New-TimeSpan -Start $startTime -End $endTime
Write-Host "Build time taken: $($timeSpan.Minutes) minutes $($timeSpan.Seconds) seconds"
}
Build函数功能详解:
$startTime = Get-Date:记录构建开始时间$endTime = Get-Date:记录构建结束时间$timeSpan = New-TimeSpan -Start $startTime -End $endTime:计算构建耗时Write-Host "Build time taken: $($timeSpan.Minutes) minutes $($timeSpan.Seconds) seconds":显示构建耗时$exePath = (Get-Command cctc.exe).Source:获取cctc.exe的完整路径$env:TOOLCHAIN_ROOT = (Split-Path (Split-Path $exePath -Parent) -Parent).Replace("\", "/"):计算并设置TOOLCHAIN_ROOT环境变量Write-Host "TOOLCHAIN_ROOT: $env:TOOLCHAIN_ROOT":显示TOOLCHAIN_ROOT路径if (!(Test-Path -Path "build")):检查build目录是否存在New-Item -Path "build" -ItemType "directory" -ErrorAction SilentlyContinue:如果不存在则创建build目录$env:CMAKE_TOOLCHAIN_FILE = "$PSScriptRoot\tasking_tricore.cmake":设置CMAKE_TOOLCHAIN_FILE环境变量Write-Host "CMAKE_TOOLCHAIN_FILE: $env:CMAKE_TOOLCHAIN_FILE":显示工具链文件路径cmake -B build -G "MinGW Makefiles" .:使用MinGW Makefiles生成构建文件$totalLogicalCores = (Get-CimInstance -ClassName Win32_Processor).NumberOfLogicalProcessors | Measure-Object -Sum).Sum:获取系统逻辑CPU核心数cmake --build build -- -j $totalLogicalCores:使用多核并行构建,提高构建速度if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }:如果构建失败,退出并返回错误代码function Clean {
if (Test-Path -Path "build") {
Remove-Item -Path "build" -Recurse -Force
}
}
Clean函数功能详解:
if (Test-Path -Path "build"):检查build目录是否存在Remove-Item -Path "build" -Recurse -Force:如果存在则递归删除build目录及其所有内容function Help {
Write-Host "Usage: win.ps1 [command]"
Write-Host "Commands:"
Write-Host " build: build the project"
Write-Host " clean: clean the project"
Write-Host " help: show this help message"
}
Help函数功能详解:
if ($args.Length -eq 0) {
Help
exit 0
}
switch ($args[0]) {
"build" {
Build
}
"clean" {
Clean
}
"help" {
Help
}
default {
Write-Host "Unknown command: $args[0]"
Help
}
}
命令行参数处理:
if ($args.Length -eq 0) { Help; exit 0 }:如果没有提供命令行参数,显示帮助信息并退出switch ($args[0]):根据命令行参数执行相应的函数
构建项目:
.win.ps1 build
清理构建文件:
.win.ps1 clean
查看帮助信息:
.win.ps1 help
预期输出示例(构建成功):
TOOLCHAIN_ROOT: C:/Tasking/TriCore6.3r1/ctc
CMAKE_TOOLCHAIN_FILE: D:/temp/tc397_min_project/tasking_tricore.cmake
-- The C compiler identification is Tasking 6.3.1.0
-- The CXX compiler identification is Tasking 6.3.1.0
-- The ASM compiler identification is Tasking
-- Found assembler: C:/Tasking/TriCore6.3r1/ctc/bin/astc.exe
-- Configuring done
-- Generating done
-- Build files have been written to: D:/temp/tc397_min_project/build
[ 5%] Building C object CMakeFiles/tc397_min_project.dir/Cpu0_Main.c.obj
[ 10%] Building C object CMakeFiles/tc397_min_project.dir/Cpu1_Main.c.obj
[ 15%] Building C object CMakeFiles/tc397_min_project.dir/Cpu2_Main.c.obj
[ 20%] Building C object CMakeFiles/tc397_min_project.dir/Cpu3_Main.c.obj
[ 25%] Building C object CMakeFiles/tc397_min_project.dir/Cpu4_Main.c.obj
[ 30%] Building C object CMakeFiles/tc397_min_project.dir/Cpu5_Main.c.obj
[ 35%] Building C object CMakeFiles/tc397_min_project.dir/Configurations/Ifx_Cfg_Ssw.c.obj
[ 40%] Building C object CMakeFiles/tc397_min_project.dir/Configurations/Ifx_Cfg_SswBmhd.c.obj
[ 45%] Building C object CMakeFiles/tc397_min_project.dir/Configurations/Debug/sync_on_halt.c.obj
[ 50%] Building C object CMakeFiles/tc397_min_project.dir/Libraries/Infra/Platform/Tricore/Compilers/CompilerTasking.c.obj
...
[100%] Linking C executable tc397_min_project.elf
[100%] Built target tc397_min_project
Build time taken: 1 minutes 32 seconds
通过使用win.ps1脚本,开发者可以更加高效地构建TC39x项目,特别是在需要频繁构建的开发过程中,大大提高了工作效率。
Win + X,选择”Windows PowerShell”cd d:\temp\tc397_min_project.\win.ps1 buildbuild目录中会生成tc397_min_project.hex文件Win + R,输入cmd,回车cd d:\temp\tc397_min_projectmkdir build
cd buildcmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=..\tasking_tricore.cmake ..cmake --build .tc397_min_project.hex文件# 定义CI流程阶段
stages:
- build
# 构建任务
tasking_build:
# 指定Runner标签
tags:
- 这里填入服务器设置的tag
# 所属阶段
stage: build
# 触发条件(只在创建Tag时执行)
only:
- tags
# 构建脚本
script:
# 设置工具链根目录
- export TOOLCHAIN_ROOT=/opt/Tasking/TriCore6.3r1/ctc
# 生成构建文件
- cmake -B build -DCMAKE_TOOLCHAIN_FILE=tasking_tricore.cmake -G 'Unix Makefiles' .
# 执行构建,使用多核并行
- cmake --build build -j$(nproc)
# 构建产物配置
artifacts:
# 保存的路径
paths:
- build
# 过期时间(60天)
expire_in: '60'
# 保存条件(构建成功时)
when: on_success
# 构建失败时不允许继续
allow_failure: false
# Ubuntu系统
sudo apt update
sudo apt install -y cmake make git curl
# CentOS系统
sudo yum update
sudo yum install -y cmake make git curlscp Tasking_TriCore_Installer.run user@server:/tmp/# 进入安装包目录
cd /tmp
# 添加执行权限
chmod +x Tasking_TriCore_Installer.run
# 运行安装程序
sudo sh Tasking_TriCore_Installer.run/opt/Tasking/TriCore6.3r1/ctc)sudo nano /etc/profile# Tasking编译器环境变量
export TOOLCHAIN_ROOT=/opt/Tasking/TriCore6.3r1/ctc
export PATH=$PATH:$TOOLCHAIN_ROOT/bin# 保存文件(按Ctrl+X,然后按Y,回车)
source /etc/profilenano ~/.bashrc# Tasking许可证# 保存文件
source ~/.bashrc# Ubuntu系统
# 下载并执行GitLab Runner安装脚本
sudo apt-get install gitlab-runner
# CentOS系统
# 下载并执行GitLab Runner安装脚本
sudo yum install gitlab-runnersudo gitlab-runner registerTasking Build Runnertasking,build,tricoreshellsudo gitlab-runner startsudo gitlab-runner status
Win + R,输入git bash,回车cd d:\temp\tc397_min_projectgit add .
git commit -m "Update code for CI test"
git pushgit tag v1.0.0
git push origin v1.0.0build目录,其中包含生成的tc397_min_project.hex文件Tasking编译器默认使用单精度浮点模型,double会被当作float对待。如果需要修改浮点模型,可以在编译选项中调整--fp-model参数。
链接脚本Lcf_Tasking_Tricore_Tc.lsl定义了内存布局,包括:
如果有第三方静态库或自己创建的静态库,可以在CMakeLists.txt中通过target_link_libraries命令添加:
target_link_libraries(${PROJECT_NAME}
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/libraries/libexample.a
)
CMake 3.25版本及以后新增了CMAKE_TASKING_TOOLSET变量,简化了Tasking工具链的配置。使用方法:
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_TASKING_TOOLSET "TriCore")
问题:cctc.exe not found
解决方案:
PATH环境变量是否包含编译器bin目录set TOOLCHAIN_ROOT=C:\Tasking\TriCore6.3r1\ctc问题:License error: No valid license found
解决方案:
问题:CMake Error at tasking_tricore.cmake
解决方案:
tasking_tricore.cmake文件是否存在TOOLCHAIN_ROOT环境变量是否正确设置cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/tasking_tricore.cmake问题:Linker error: undefined reference to…
解决方案:
问题:CI构建失败,显示各种错误
解决方案:
.c和.h文件src/led.c和src/led.hfile(GLOB_RECURSE),新文件会自动被包含add_executable中添加新文件Lcf_Tasking_Tricore_Tc.lslcache:
paths:
- build/
-j$(nproc)参数启用多核并行构建cmake --build build -- -j8(8核)-O2或-O3-Wl-Of-g选项cppcheck或Tasking编译器的内置静态分析--misrac-version=2012选项最快的方法直接联系我们: support@softor.com.cn ; tianpengbo@softor.com.cn
通过本教程,您已经掌握了:
本教程提供了一个完整的英飞凌TC39x项目配置和CI搭建方案,希望能帮助您快速上手并应用到实际项目中。如果您有任何问题或建议,欢迎在评论区留言讨论。
| 命令 | 用途 | 示例 |
|---|---|---|
cctc --version | 查看Tasking编译器版本 | cctc --version |
cmake --version | 查看CMake版本 | cmake --version |
gcc --version | 查看GCC版本 | gcc --version |
.\win.ps1 build | 使用脚本构建项目 | .\win.ps1 build |
.\win.ps1 clean | 清理构建文件 | .\win.ps1 clean |
.\win.ps1 help | 显示帮助信息 | .\win.ps1 help |
| 命令 | 用途 | 示例 |
|---|---|---|
sudo apt update | 更新软件包列表 | sudo apt update |
sudo apt install cmake | 安装CMake | sudo apt install cmake |
sudo gitlab-runner status | 查看GitLab Runner状态 | sudo gitlab-runner status |
sudo gitlab-runner start | 启动GitLab Runner | sudo gitlab-runner start |
sudo gitlab-runner stop | 停止GitLab Runner | sudo gitlab-runner stop |
| 命令 | 用途 | 示例 |
|---|---|---|
git tag | 查看所有Tag | git tag |
git tag v1.0.0 | 创建Tag | git tag v1.0.0 |
git push origin v1.0.0 | 推送Tag到远程仓库 | git push origin v1.0.0 |
git add . | 添加所有修改到暂存区 | git add . |
git commit -m "message" | 提交修改 | git commit -m "Update code" |
git push | 推送到远程仓库 | git push |
| 命令 | 用途 | 示例 |
|---|---|---|
cmake -B build -G "MinGW Makefiles" . | 生成构建文件 | cmake -B build -G "MinGW Makefiles" . |
cmake --build build | 执行构建 | cmake --build build |
cmake --build build -- -j8 | 使用8核并行构建 | cmake --build build -- -j8 |
cmake -DCMAKE_TOOLCHAIN_FILE=tasking_tricore.cmake .. | 指定工具链文件 | cmake -DCMAKE_TOOLCHAIN_FILE=tasking_tricore.cmake .. |
版权声明
本教程基于英飞凌TC39x项目示例和Tasking编译器官方文档编写,仅供学习参考。如有错误或不足之处,欢迎指正和改进。
索弗特新能源是翠展集团旗下汽车电子软件工具链专业提供商,2018年成立于浙江嘉兴。公司以“让工具创造便捷与安全”为使命,致力于成为“全球汽车软件安全的卓越企业”。
核心业务:
量产烧录器:打造“快、准、稳”的在线烧录解决方案,兼容英飞凌、瑞萨、NXP、ST等主流芯片,满足车规级产线严苛要求。
汽车软件工具链:提供从需求分析、开发编译到调试测试、量产交付的一站式解决方案,集成TASKING、ISYSTEM、Suresoft等国际顶尖工具,支持ISO26262 ASIL D认证,并联合同星智能、东软睿驰提供TSMaster HIL、AUTOSAR等方案,成本优化40%,已量产超50款车型。