#low-power #ti #module

no-std cc13x2_26x2_pac

TI cc13x2/cc26x2微控制器系列的外设访问Crate

1个不稳定版本

0.10.3 2024年6月1日

#902 in 密码学

BSD-3-Clause

13MB
274K SLoC

德州仪器低功耗RF微控制器的PAC

CI

此仓库包含德州仪器低功耗RF(LPRF)系列Cortex-M微控制器的外设访问Crate(PAC)。

所有这些Crate都是使用svd2rusttixml2svd自动生成的。

Crate

LPRF芯片系列中的每个设备系列都有自己的PAC。设备系列是TI如何分组具有相同外设的类似设备。在这个命名方案中,x是一个通配符。即CC2652和CC1312都属于cc13x2_26x2系列。

为了防止Crate中的重复,每个设备系列只有一个PAC,而不是每个设备。

以下列出PAC

PAC 支持的设备 TI SDK链接 目标
cc13x0 CC1310, CC1350 https://www.ti.com/tool/download/SIMPLELINK-CC13X0-SDK thumbv7m-none-eabi
cc13x1_cc26x1 CC1311P3, CC1311R3, CC2651P3, CC2651R3, CC2651R3SIPA https://github.com/TexasInstruments/cc13xx_cc26xx_sdk thumbv7em-none-eabi
cc13x2_26x2 CC2642R, CC2652R, CC2652RB, CC1312R, CC1352R, CC1352P, CC2652P, CC2652PSIP, CC2652RSIP https://github.com/TexasInstruments/cc13xx_cc26xx_sdk thumbv7em-none-eabihf
cc13x2x7_cc26x2x7 CC1312R7, CC1352P7, CC2652P7, CC2652R7 https://github.com/TexasInstruments/cc13xx_cc26xx_sdk thumbv7em-none-eabihf
cc13x4_cc26x4 CC1314R, CC1354R, CC1354P, CC2674R, CC2674P https://github.com/TexasInstruments/cc13xx_cc26xx_sdk thumbv8m.main-none-eabihf
cc2640r2 CC2640R2 https://www.ti.com/tool/download/SIMPLELINK-CC2640R2-SDK thumbv7m-none-eabi

警告:由于存在其他(非维护)cc13x2_cc26x2 Crate,cc13x2_26x2 PAC Crate的命名不同(注意26x2前面的cc缺失)。

工作原理

此仓库尝试使用tixml2svdsvd2rust尽可能自动化。本节旨在描述此仓库是如何构建的。

要查看代码的组织方式,请尝试运行以下命令

$ tree -L 2

这应该会给出类似于以下输出

.
├── Cargo.lock
├── Cargo.toml
├── CONTRIBUTING.md
├── input
│   ├── devices
│   └── Modules
├── LICENSE.txt
├── pacs
│   ├── cc13x0
│   ├── cc13x1_cc26x1
│   ├── cc13x2_26x2
│   ├── cc13x2x7_cc26x2x7
│   ├── cc13x4_cc26x4
│   └── cc2640r2
├── README.md
├── svds
│   ├── cc13x0.svd
│   ├── cc13x1_cc26x1.svd
│   ├── cc13x2_26x2.svd
│   ├── cc13x2x7_cc26x2x7.svd
│   ├── cc13x4_cc26x4.svd
│   └── cc2640r2.svd
├── tests
│   ├── cc13x0
│   ├── cc13x2-cc26x2
│   ├── cc13x4-cc26x4
│   └── cc2640r2
├── tools
│   └── generate_pacs.py
└── xtask
    ├── Cargo.toml
    └── src

27 directories, 15 files

使用tools/generate_pacs.py自动化从输入XML文件创建PAC。

输入文件

input目录包含来自TI的设备定义文件。它们可以从Code Composer Studio(CCS)安装中复制。

Modules文件夹中的文件以TI XML格式定义了设备的外设集。

这些文件用于使用tixml2svd生成svd文件。

《input/devices/》目录下的XML文件是手动维护的。它们基于设备系列。在《input/devices/》目录下的一个XML文件将生成一个PAC。

补丁

TI的XML源代码不包含中断定义。因此,还存在一些手动维护的rust文件,这些文件包含在Rust中定义中断向量表的所需代码。这些文件用于修补生成的《lib.rs》文件。理想情况下,也会修补SVD文件,但这更为复杂,所以目前我们使用了一个更简单的解决方案。

添加或更新设备

要更新源文件,将《Modules》文件夹从《<INSTALL_LOC>/ti/ccs<CCS_VER>/ccs/ccs_base/common/targetdb/`》复制到本仓库中的《input/devices/》文件夹。`<INSTALL_LOC>` 是您安装CCS的位置。`<CCS_VER>` 是您安装的CCS版本,不带任何 `.` 或其他分隔符,因此12.2.0变为1220。

  1. 按照上述方法从CCS复制文件
  2. 如果添加新的设备系列,在《input/devices/》中创建一个设备系列XML描述符。
    • 提示:这些可以从CCS的《<INSTALL_LOC>/ti/ccs<CCS_VER>/ccs/ccs_base/common/targetdb/devices`》复制过来。
    • 从您想要的系列中选择一个设备,将其复制到树中并重命名
  3. 如果添加新的设备系列,创建《device_family_ints.rs》,将《device_family`》替换为设备系列名称。
    • 提示:可以使用TI创建的C文件。它可以在《<TI_SDK>/source/ti/devices/<device_family>/inc/hw_ints.h`》找到。
  4. 运行《cargo xtask generate`
  5. 根据您在最后一步创建的向量表更新《device.x`

依赖关系