本仓库用于STM32芯片的Nuts 板开发,支持硬件版本包括:
- stm32f103c8
- stm32f215vgt6
- stm32f407vg
- stm32f439vgt6
- stm32l476rgt6
项目开发工具使用 STM32CubeIDE 1.16.1 ,下载对应版本后安装
-
克隆当前代码库
本仓库包含子模块,所以克隆需要额外做一些参数(有关子模块的概念可以访问https://git-scm.com/docs/gitsubmodules进行了解):
git clone --recurse-submodules https://github.com/cracknuts-team/nut_st_workspace.git
如果已经克隆了仓库但是没有指定同步子模块,可以使用如下命令:
git submodule update --init --recursive
在执行仓库拉取操作时,也需要额外增加参数来更新子模块:
git pull --recurse-submodules
❗如果你需要更新子模块的代码到最新的提交可执行下面的代码进行更新(注意,此时更新的子模块代码仅仅是子模块的提交,不是主仓库指定的提交,仅推荐在自己开发时使用)
git submodule update --remote --recursive
-
FOR GITEE USER
如果您是通过Gitee的仓库访问的当前文档,并且您无法连接到GitHub,你可以通过以下方式进行操作以同步代码:
-
同步主仓库代码
git clone https://gitee.com/cracknuts-team/nut_st_workspace.git git submodule
上面
git submodule的输出要保留,下面需要用到,其输出类似如下内容:-88fc810bfa5852609bb2cf71011fa8b9a0860cae process/mbedtls -
克隆子模块代码
cd nut_st_workspace/process/mbedtls git clone https://gitee.com/cracknuts-team/mbedtls.git .
使用第一步获取到的子模块提交ID:
88fc810bfa5852609bb2cf71011fa8b9a0860cae,检出该提交git checkout -b temp 88fc810bfa5852609bb2cf71011fa8b9a0860cae
通过以上两步完成在Gitee仓库的代码同步。
💡TIP: 需要注意,您通过这种方式同步的代码,不能提交子模块的提交记录到主仓库
-
-
打开
STM32CubeIDE软件 -
指定
nut_st_workspace为工作目录打开软件后选择路径到仓库目录
或者
如已打开工程,可以切换到仓库目录,
File -> Switch WorkSpace -> other -> ../nut_st_workspace
可参考相关教程,如:STM32CubeMX系列教程
STM32CubeIDE软件自动升级会导致工程不兼容问题,建议关闭自动升级功能。
命令格式
┌────────────────-──┬───────┐
│---Request Header--│-------│
│Command│ RFU│Length│PayLoad│
│-------------------│-------│
│ 2B │ 2B │ 4B │$Length│
└───────┴───┴───────┴───────┘
响应格式
┌───────────────────┬───────┐
│--Response Header--│-------│
│ Status │ Length │PayLoad│
│-------------------│-------│
│ 2B │ 4B │$Length│
└────────┴──────────┴───────┘
命令格式
| Command | RFU | Length | Payload |
|---|---|---|---|
| 0x0100 | 0x0000 | len(key) | key |
响应格式
| Status | Length | Payload |
|---|---|---|
| 0x0000 | 0x00000000 | None |
示例
send >> 01 00 00 00 00 00 00 10 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
return << 00 00 00 00 00 00
Note: The length of AES key support 16 Bytes(128 bits), 24 Bytes(192 bits) and 32 Bytes(256 bits)
命令格式
| Command | RFU | Length | Payload |
|---|---|---|---|
| 0x0101 | 0x0000 | len(key) | key |
响应格式
| Status | Length | Payload |
|---|---|---|
| 0x0000 | 0x00000000 | None |
示例
send >> 01 01 00 00 00 00 00 10 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
return << 00 00 00 00 00 00
注意: The length of AES key support 16 Bytes(128 bits), 24 Bytes(192 bits) and 32 Bytes(256 bits)
命令格式
| Command | RFU | Length | Payload |
|---|---|---|---|
| 0x0102 | 0x0000 | 0x00000010 | plain(16B) |
响应格式
| Status | Length | Payload |
|---|---|---|
| 0x0000 | 0x00000010 | cipher(16B) |
示例
send >> 01 02 00 00 00 00 00 10 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
return << 00 00 00 00 00 10 62 F6 79 BE 2B F0 D9 31 64 1E 03 9C A3 40 1B B2
命令格式
| Command | RFU | Length | Payload |
|---|---|---|---|
| 0x0103 | 0x0000 | 0x00000010 | cipher(16B) |
响应格式
| Status | Length | Payload |
|---|---|---|
| 0x0000 | 0x00000010 | plain(16B) |
示例
send >> 01 03 00 00 00 00 00 10 62 F6 79 BE 2B F0 D9 31 64 1E 03 9C A3 40 1B B2
return << 00 00 00 00 00 10 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
命令格式
| Command | RFU | Length | Payload |
|---|---|---|---|
| 0x0200 | 0x0000 | 0x00000008 | key(8B) |
响应格式
| Status | Length | Payload |
|---|---|---|
| 0x0000 | 0x00000000 | None |
示例
send >> 02 00 00 00 00 00 00 08 88 99 AA BB CC DD EE FF
return << 00 00 00 00 00 00
命令格式
| Command | RFU | Length | Payload |
|---|---|---|---|
| 0x0201 | 0x0000 | 0x00000008 | key(8B) |
响应格式
| Status | Length | Payload |
|---|---|---|
| 0x0000 | 0x00000000 | None |
示例
send >> 02 00 00 00 00 00 00 08 88 99 AA BB CC DD EE FF
return << 00 00 00 00 00 00
命令格式
| Command | RFU | Length | Payload |
|---|---|---|---|
| 0x0202 | 0x0000 | 0x00000008 | plain(8B) |
响应格式
| Status | Length | Payload |
|---|---|---|
| 0x0000 | 0x00000008 | cipher(8B) |
示例
send >> 02 02 00 00 00 00 00 08 88 99 AA BB CC DD EE FF
return << 00 00 00 00 00 08 97 9F FF 9B 97 0C A6 A4
命令格式
| Command | RFU | Length | Payload |
|---|---|---|---|
| 0x0203 | 0x0000 | 0x00000008 | cipher(8B) |
响应格式
| Status | Length | Payload |
|---|---|---|
| 0x0000 | 0x00000008 | plain(8B) |
示例
send >> 02 03 00 00 00 00 00 08 97 9F FF 9B 97 0C A6 A4
return << 00 00 00 00 00 08 88 99 AA BB CC DD EE FF






