1. 项目简介

英飞凌TC39x系列微控制器是汽车电子领域的高性能处理器,广泛应用于发动机控制、车身电子、安全系统等场景。本教程将详细介绍如何使用Tasking编译器和CMake构建系统来配置和管理TC39x项目,并搭建完整的CI/CD流程,让新手也能轻松上手。

备注:结合与多位工程师线下/线上的交流和平台资料,写的这篇教程,如有错误之处,请批评指正。需要许可证,安装包等内容,请与我们联系 support@softor.com.cn

1.1 项目特点

1.2 IDE与CMake构建方式对比

在英飞凌TC39x项目开发中,主要有两种构建方式:使用 tasking IDE和使用CMake命令行构建。下面详细对比这两种方式的优缺点。

1.2.1  IDE

优点:

优点说明
图形化界面友好提供直观的图形界面,适合初学者快速上手
项目管理便捷通过项目浏览器可以方便地管理源文件、头文件和库文件
代码编辑功能强大集成代码高亮、自动补全、语法检查等功能
调试功能完善集成调试器,支持断点、单步执行、变量查看等
一键构建点击按钮即可完成编译、链接和生成可执行文件
配置可视化编译选项、链接选项等都可以通过图形界面配置
多工程管理可以同时打开多个工程,方便切换和对比
代码生成集成支持从Simulink等工具自动生成代码

缺点:

缺点说明
依赖IDE环境必须在安装了ide的环境中才能编译,无法在服务器上运行
自动化困难难以集成到CI/CD流程,无法实现自动化构建
版本控制冲突IDE生成的配置文件容易产生版本控制冲突
构建效率较低图形界面占用资源,构建速度相对较慢
配置不透明编译选项隐藏在IDE配置中,难以追踪和复现
批量构建困难无法方便地批量构建多个项目或多个配置

1.2.2 CMake命令行构建

优点:

优点说明
跨平台支持支持Windows、Linux、macOS等多个平台
自动化友好可以轻松集成到CI/CD流程,实现自动化构建
构建效率高命令行构建速度快,资源占用少
配置透明所有编译选项都在CMakeLists.txt中,清晰可见
版本控制友好配置文件是文本文件,易于版本控制
批量构建可以方便地批量构建多个项目或多个配置
灵活可扩展可以轻松添加自定义构建步骤和脚本
并行构建支持多核并行编译,大幅提高构建速度
服务器部署可以在无图形界面的服务器上运行
工具链灵活可以方便地切换不同的编译器和工具链
社区支持CMake有庞大的社区支持和丰富的文档

缺点:

缺点说明
学习曲线陡峭需要学习CMake语法和命令行操作
配置复杂初次配置需要编写CMakeLists.txt和工具链文件
调试不便需要额外配置调试器,不如IDE集成方便
缺少图形界面没有直观的图形界面,对初学者不友好
错误定位困难编译错误信息不如IDE直观,需要手动定位
依赖管理需要手动管理依赖和包含路径
代码编辑需要配合其他代码编辑器使用
缺少IDE功能没有代码高亮、自动补全等功能

1.2.3 对比总结

对比项ADS IDECMake
学习难度⭐ 简单⭐⭐⭐⭐ 较难
开发效率⭐⭐⭐⭐ 高⭐⭐⭐ 中等
构建速度⭐⭐⭐ 中等⭐⭐⭐⭐⭐ 快
跨平台⭐⭐ 有限⭐⭐⭐⭐⭐ 优秀
自动化⭐ 困难⭐⭐⭐⭐⭐ 优秀
调试功能⭐⭐⭐⭐⭐ 完善⭐⭐ 需配置
版本控制⭐⭐⭐ 中等⭐⭐⭐⭐⭐ 优秀
CI/CD集成⭐ 困难⭐⭐⭐⭐⭐ 优秀
团队协作⭐⭐⭐ 中等⭐⭐⭐⭐⭐ 优秀
成本⭐⭐⭐ 需要IDE许可证⭐⭐⭐⭐⭐ 免费

1.2.4 推荐使用场景

使用TASKING IDE的场景:

使用CMake的场景:

1.2.5 混合使用方案

在实际项目中,可以结合两种方式的优点:

这种混合方案可以兼顾开发效率和自动化需求,是实际项目中的最佳实践。

2. 环境搭建

2.1 软件准备清单

软件名称版本要求用途下载来源
CMake3.15+构建系统CMake官网
MinGW最新版Windows环境下的GNU工具链MinGW官网
Git最新版版本控制Git官网
Tasking TriCore编译器6.3r1+TriCore架构专用编译器英飞凌官网或Tasking官网
Aurix Development Studio (ADS)1.9.20+集成开发环境英飞凌官网

2.2 安装Tasking编译器详细步骤

  1. 1. 下载安装包
  2. 2. 运行安装程序
  3. 3. 打最新补丁(可选)
  4. 4. 验证安装

2.3 配置环境变量

  1. 1. 打开环境变量设置
  2. 2. 编辑系统PATH变量
  3. 3. 验证环境变量

3. 项目结构详解

3.1 核心文件说明

文件名用途重要性
CMakeLists.txt主构建配置文件⭐⭐⭐⭐⭐
tasking_tricore.cmakeTasking编译器工具链配置⭐⭐⭐⭐⭐
win.ps1Windows环境构建脚本⭐⭐⭐⭐
.gitlab-ci.ymlCI/CD配置文件⭐⭐⭐⭐
Lcf_Tasking_Tricore_Tc.lslTasking链接脚本⭐⭐⭐⭐
Cpu0_Main.cCPU0核心主函数⭐⭐⭐
Cpu1_Main.c – Cpu5_Main.c其他CPU核心主函数⭐⭐⭐

3.2 目录结构

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主函数

3.3 关键文件内容解析

3.3.1 tasking_tricore.cmake(工具链配置)

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格式
)

3.3.2 CMakeLists.txt(主构建文件)

# 要求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
)

4. 构建流程详解

4.1 Windows环境构建(使用脚本)

4.1.1 win.ps1脚本详细功能解析

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函数功能详解:

  1. 1. 记录构建时间
  2. 2. 自动检测Tasking编译器路径
  3. 3. 创建构建目录
  4. 4. 设置工具链文件
  5. 5. 生成构建文件
  6. 6. 获取CPU核心数
  7. 7. 执行构建
  8. 8. 检查构建结果
function Clean {
  if (Test-Path -Path "build") {
    Remove-Item -Path "build" -Recurse -Force
  }
}

Clean函数功能详解:

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
  }
}

命令行参数处理:

4.1.2 win.ps1脚本的优势

  1. 1. 自动化程度高:一键完成整个构建过程,无需手动执行多个命令
  2. 2. 智能检测:自动检测Tasking编译器路径,无需手动设置环境变量
  3. 3. 并行构建:自动获取CPU核心数,使用多核并行构建,提高构建速度
  4. 4. 错误处理:构建失败时会返回错误代码,便于集成到其他脚本中
  5. 5. 构建时间统计:显示构建耗时,便于评估构建性能
  6. 6. 目录管理:自动创建和清理build目录
  7. 7. 命令行友好:提供清晰的帮助信息和命令选项

4.1.3 脚本使用示例

构建项目:

.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项目,特别是在需要频繁构建的开发过程中,大大提高了工作效率。

4.1.4 执行构建步骤

  1. 1. 打开PowerShell
  2. 2. 进入项目目录cd d:\temp\tc397_min_project
  3. 3. 执行构建命令.\win.ps1 build
  4. 4. 查看构建结果

4.2 手动构建步骤(不使用脚本)

  1. 1. 打开命令提示符
  2. 2. 进入项目目录cd d:\temp\tc397_min_project
  3. 3. 创建build目录mkdir build
    cd build
  4. 4. 生成构建文件cmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=..\tasking_tricore.cmake ..
  5. 5. 执行构建cmake --build .
  6. 6. 查看构建结果

5. CI/CD配置超详细指南

5.1 .gitlab-ci.yml文件详解

# 定义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

5.2 搭建GitLab CI服务器详细步骤

5.2.1 服务器准备

  1. 1. 选择服务器
  2. 2. 安装基础依赖# Ubuntu系统
    sudo apt update
    sudo apt install -y cmake make git curl

    # CentOS系统
    sudo yum update
    sudo yum install -y cmake make git curl

5.2.2 安装Tasking编译器

  1. 1. 上传安装包
  2. 2. 执行安装# 进入安装包目录
    cd /tmp
    # 添加执行权限
    chmod +x Tasking_TriCore_Installer.run
    # 运行安装程序
    sudo sh Tasking_TriCore_Installer.run
  3. 3. 按照安装向导操作

5.2.3 配置环境变量

  1. 1. 编辑系统配置文件sudo nano /etc/profile
  2. 2. 添加环境变量# Tasking编译器环境变量
    export TOOLCHAIN_ROOT=/opt/Tasking/TriCore6.3r1/ctc
    export PATH=$PATH:$TOOLCHAIN_ROOT/bin
  3. 3. 保存并生效# 保存文件(按Ctrl+X,然后按Y,回车)
    source /etc/profile

5.2.4 配置Tasking许可证

  1. 1. 编辑用户配置文件nano ~/.bashrc
  2. 2. 添加许可证环境变量# Tasking许可证
  3. 3. 保存并生效# 保存文件
    source ~/.bashrc

5.2.5 安装并注册GitLab Runner

  1. 1. 安装GitLab Runner# Ubuntu系统
    # 下载并执行GitLab Runner安装脚本
    sudo apt-get install gitlab-runner

    # CentOS系统
    # 下载并执行GitLab Runner安装脚本
    sudo yum install gitlab-runner
  2. 2. 注册Runnersudo gitlab-runner register
  3. 3. 按照提示输入信息
  4. 4. 启动Runnersudo gitlab-runner start
  5. 5. 验证Runner状态sudo gitlab-runner status

6. 测试CI流程

6.1 创建Tag触发CI

  1. 1. 打开Git Bash
  2. 2. 进入项目目录cd d:\temp\tc397_min_project
  3. 3. 提交代码(如果有修改)git add .
    git commit -m "Update code for CI test"
    git push
  4. 4. 创建Taggit tag v1.0.0
    git push origin v1.0.0

6.2 查看CI构建状态

  1. 1. 登录GitLab
  2. 2. 进入项目页面
  3. 3. 查看CI/CD状态
  4. 4. 查看构建日志

6.3 下载构建产物

  1. 1. 构建完成后
  2. 2. 查看产物内容

7. 关键技术点解析

7.1 浮点模型设置

Tasking编译器默认使用单精度浮点模型,double会被当作float对待。如果需要修改浮点模型,可以在编译选项中调整--fp-model参数。

7.2 链接脚本配置

链接脚本Lcf_Tasking_Tricore_Tc.lsl定义了内存布局,包括:

7.3 静态库集成

如果有第三方静态库或自己创建的静态库,可以在CMakeLists.txt中通过target_link_libraries命令添加:

target_link_libraries(${PROJECT_NAME}
    PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/libraries/libexample.a
)

7.4 CMake 3.25+新特性

CMake 3.25版本及以后新增了CMAKE_TASKING_TOOLSET变量,简化了Tasking工具链的配置。使用方法:

set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_TASKING_TOOLSET "TriCore")

8. 常见问题与解决方案

8.1 编译器找不到

问题cctc.exe not found

解决方案

  1. 1. 检查Tasking编译器是否正确安装
  2. 2. 确认PATH环境变量是否包含编译器bin目录
  3. 3. 尝试重启电脑使环境变量生效
  4. 4. 手动指定编译器路径:set TOOLCHAIN_ROOT=C:\Tasking\TriCore6.3r1\ctc

8.2 许可证错误

问题:License error: No valid license found

解决方案

  1. 1. 检查许可证密钥是否正确
  2. 2. 确认许可证服务器是否可访问
  3. 3. 验证许可证是否过期
  4. 4. 在群聊中联系我们或者邮件 support@softor.com.cn

8.3 CMake错误

问题:CMake Error at tasking_tricore.cmake

解决方案

  1. 1. 检查tasking_tricore.cmake文件是否存在
  2. 2. 确认TOOLCHAIN_ROOT环境变量是否正确设置
  3. 3. 尝试使用绝对路径指定工具链文件:cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/tasking_tricore.cmake
  4. 4. 检查CMake版本是否满足要求(最低3.15)

8.4 链接错误

问题:Linker error: undefined reference to…

解决方案

  1. 1. 检查源文件是否包含所有必要的函数定义
  2. 2. 确认链接脚本是否正确配置
  3. 3. 检查内存分配是否合理
  4. 4. 查看链接脚本中的内存布局是否与硬件匹配
  5. 5. 检查是否缺少必要的库文件

8.5 CI构建失败

问题:CI构建失败,显示各种错误

解决方案

  1. 1. 查看CI构建日志,确定具体错误原因
  2. 2. 在本地重现构建过程,排查问题
  3. 3. 检查服务器环境是否与本地环境一致
  4. 4. 确认环境变量和许可证配置是否正确
  5. 5. 尝试在服务器上手动执行构建命令,查看具体错误

9. 项目扩展与优化

9.1 添加新功能模块

  1. 1. 创建新的源文件
  2. 2. 修改CMakeLists.txt
  3. 3. 更新链接脚本

9.2 优化构建过程

  1. 1. 使用缓存cache:
      paths:
        - build/
  2. 2. 并行构建
  3. 3. 减少构建产物大小

9.3 代码质量检查

  1. 1. 集成静态分析工具
  2. 2. MISRA C检查
  3. 3. 单元测试

10. 学习资源

10.1 官方文档

最快的方法直接联系我们: support@softor.com.cn ; tianpengbo@softor.com.cn

11. 总结与展望

通过本教程,您已经掌握了:

  1. 1. 环境搭建:Tasking编译器、CMake、MinGW等工具的安装与配置
  2. 2. 项目结构:了解了TC39x项目的基本结构和关键文件
  3. 3. 构建流程:Windows环境下的构建脚本和手动构建步骤
  4. 4. CI/CD配置:GitLab CI服务器的搭建和配置
  5. 5. 问题排查:常见问题的解决方案
  6. 6. 技术要点:浮点模型、链接脚本、静态库集成等关键技术

未来展望

  1. 1. 自动化测试:集成单元测试和硬件测试
  2. 2. 持续部署:实现自动烧录和测试
  3. 3. 多平台支持:扩展到其他英飞凌微控制器系列
  4. 4. 代码生成:使用代码生成工具提高开发效率
  5. 5. 性能优化:进一步优化编译选项和链接配置

本教程提供了一个完整的英飞凌TC39x项目配置和CI搭建方案,希望能帮助您快速上手并应用到实际项目中。如果您有任何问题或建议,欢迎在评论区留言讨论。


附录:常用命令速查

Windows命令

命令用途示例
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

Linux命令

命令用途示例
sudo apt update更新软件包列表sudo apt update
sudo apt install cmake安装CMakesudo apt install cmake
sudo gitlab-runner status查看GitLab Runner状态sudo gitlab-runner status
sudo gitlab-runner start启动GitLab Runnersudo gitlab-runner start
sudo gitlab-runner stop停止GitLab Runnersudo gitlab-runner stop

Git命令

命令用途示例
git tag查看所有Taggit tag
git tag v1.0.0创建Taggit 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命令

命令用途示例
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编译器官方文档编写,仅供学习参考。如有错误或不足之处,欢迎指正和改进。

12、关于索弗特

索弗特新能源是翠展集团旗下汽车电子软件工具链专业提供商,2018年成立于浙江嘉兴。公司以“让工具创造便捷与安全”为使命,致力于成为“全球汽车软件安全的卓越企业”。

核心业务:

量产烧录器:打造“快、准、稳”的在线烧录解决方案,兼容英飞凌、瑞萨、NXP、ST等主流芯片,满足车规级产线严苛要求。

汽车软件工具链:提供从需求分析、开发编译到调试测试、量产交付的一站式解决方案,集成TASKING、ISYSTEM、Suresoft等国际顶尖工具,支持ISO26262 ASIL D认证,并联合同星智能、东软睿驰提供TSMaster HIL、AUTOSAR等方案,成本优化40%,已量产超50款车型。

在线留言