1个不稳定版本
0.10.3 | 2024年5月31日 |
---|
892 在 密码学 中
每月187次下载
13MB
274K SLoC
德州仪器低功耗RF微控制器的PACs
此仓库包含德州仪器低功耗RF(LPRF)系列Cortex-M微控制器的外设访问库(PACs)。
所有这些库都是使用svd2rust和tixml2svd自动生成的。
库
LPRF芯片系列中的每个设备系列都有自己的PAC。设备系列是TI将具有相同外设的类似设备分组的方式。在此命名方案中,x
是一个通配符。例如,CC2652和CC1312都属于cc13x2_cc26x2系列。
为了防止在库中重复过多,每个设备系列有一个PAC,而不是每个设备。
以下列出了PACs
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_cc26x2 |
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 |
工作原理
此仓库尝试尽可能使用tixml2svd和svd2rust自动化。本节旨在描述如何构建此仓库。
要查看代码的组织方式,请尝试运行以下命令
$ tree -L 2
这将给出类似以下输出
.
├── Cargo.lock
├── Cargo.toml
├── CONTRIBUTING.md
├── input
│ ├── devices
│ └── Modules
├── LICENSE.txt
├── pacs
│ ├── cc13x0
│ ├── cc13x1_cc26x1
│ ├── cc13x2_cc26x2
│ ├── cc13x2x7_cc26x2x7
│ ├── cc13x4_cc26x4
│ └── cc2640r2
├── README.md
├── svds
│ ├── cc13x0.svd
│ ├── cc13x1_cc26x1.svd
│ ├── cc13x2_cc26x2.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文件创建pacs。
输入文件
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/Modules
文件夹。 <INSTALL_LOC>
是您安装 CCS 的位置。 <CCS_VER>
是您安装的 CCS 版本,不带任何 .
或其他分隔符,所以 12.2.0 变为 1220。
- 按照上述说明从 CCS 复制文件
- 如果添加新的设备系列,请在
input/devices/
创建设备系列 XML 描述符。- 提示:这些可以从 CCS
<INSTALL_LOC>/ti/ccs<CCS_VER>/ccs/ccs_base/common/targetdb/devices
复制。 - 从您想要的系列中选择一个设备并将其复制到树中并重命名
- 提示:这些可以从 CCS
- 如果添加新的设备系列,请创建
device_family_ints.rs
,将device_family
替换为设备系列名称。- 提示:可以使用 TI 创建的 C 文件。它可以在
<TI_SDK>/source/ti/devices/<device_family>/inc/hw_ints.h
中找到。
- 提示:可以使用 TI 创建的 C 文件。它可以在
- 运行
cargo xtask generate
- 根据上一步创建的向量表更新
device.x