# MYSBootloader 1.3.0-rc.1
MySensors bootloader supporting over-the-air firmware updates
<h1>Technical details to write your own controller</h1>
All initialization the bootloader does (finding parent / requesting nodeId on first start) uses the same packets as a normal MySensors sketch. There is no need for the controller to distinguish between packets from the bootloader and packets from normal sketch execution. The controller only needs to care about two additional request/response communications. All communication is binary.
<h2>FirmwareConfig</h2>
<ul>
<li>the bootloader sends a RequestFirmwareConfig packet to the gateway to request information about the firmware it should execute:
<p>
typedef struct {<br/>
uint16_t type;<br/>
uint16_t version;<br/>
uint16_t blocks;<br/>
uint16_t crc;<br/>
uint16_t BLVersion;<br/>
} RequestFirmwareConfig;<br/>
</p>
<li>the gateway (the controller) responds with a NodeFirmwareConfig including details about the firmware the sensor should execute:
<p>
typedef struct {<br/>
uint16_t type;<br/>
uint16_t version;<br/>
uint16_t blocks;<br/>
uint16_t crc;<br/>
} NodeFirmwareConfig;<br/>
</p>
</ul>
<h2>Firmware</h2>
<ul>
<li>the bootloader sends a RequestFirmwareBlock packet to the gateway to request a specific subset (block) of the compiled firmware:
<p>
typedef struct {<br/>
uint16_t type;<br/>
uint16_t version;<br/>
uint16_t block;<br/>
} RequestFirmwareBlock;<br/>
</p>
<li>the gateway (the controller) responds with a ResponseFirmwareBlock including the specific block of the compiled firmware:
<p>
typedef struct {<br/>
uint16_t type;<br/>
uint16_t version;<br/>
uint16_t block;<br/>
uint8_t data[FIRMWARE_BLOCK_SIZE];<br/>
} ResponseFirmwareBlock;<br/>
</p>
</ul>
没有合适的资源?快使用搜索试试~ 我知道了~
MySensors 引导加载程序支持无线固件更新_C语言_代码_相关文件_下载
共1344个文件
hex:1324个
h:12个
original:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 141 浏览量
2022-07-13
21:27:05
上传
评论
收藏 3.65MB ZIP 举报
温馨提示
编写自己的控制器的技术细节 引导加载程序所做的所有初始化(在第一次启动时查找父级/请求 nodeId)使用与普通 MySensors 草图相同的数据包。控制器无需区分来自引导加载程序的数据包和来自正常草图执行的数据包。控制器只需要关心两个额外的请求/响应通信。所有通信都是二进制的。 固件配置 引导加载程序向网关发送一个 RequestFirmwareConfig 数据包,以请求有关它应该执行的固件的信息: typedef struct { uint16_t 类型; uint16_t 版本; uint16_t 块; uint16_t CRC; uint16_t BLVersion; } 请求固件配置; 网关(控制器)使用 NodeFirmwareConfig 进行响应,其中包括有关传感器应执行的固件的详细信息: typedef struct { uint16_t 类型; uint16_t 版本; uint16_t 块; uint16_t CRC; } 节点固件配置; 固件 更多详情、使用方法,请下载后细读README.md文件
资源推荐
资源详情
资源评论
收起资源包目录
MySensors 引导加载程序支持无线固件更新_C语言_代码_相关文件_下载
(1344个子文件)
MYSBootloader.c 4KB
.gitignore 55B
boot.h 33KB
MyMessage.h 17KB
MySensorsBootloader.h 14KB
HW.h 8KB
string.h 6KB
RF24.h 5KB
MyEepromAddresses.h 5KB
RF24_registers.h 3KB
STK500Bootloader.h 3KB
Core.h 2KB
stk500.h 2KB
Definitions.h 1KB
MYSBootloader_8MHz.hex 6KB
MYSBootloader.ch36.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch12.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch2.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch92.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch84.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch64.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch66.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch9.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch74.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch35.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch98.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch34.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch104.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch9.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch11.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch88.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch108.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch29.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch38.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch56.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch77.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch79.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch22.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch33.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch85.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch31.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch90.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch72.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch32.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch81.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch72.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch25.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch102.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch36.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch81.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch92.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch41.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch1.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch99.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch58.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch46.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch80.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch13.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch80.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch14.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch64.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch91.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch40.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch10.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch16.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch91.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch57.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch19.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch37.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch68.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch42.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch41.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch12.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch83.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch76.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch45.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch1.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch89.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch100.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch94.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch13.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch19.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch21.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch97.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch27.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch14.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch94.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch73.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch98.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch78.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch20.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch93.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch27.8000000L.RF24_PA_MAX.hex 6KB
MYSBootloader.ch77.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch66.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch57.8000000L.RF24_PA_MIN.hex 6KB
MYSBootloader.ch44.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch94.8000000L.RF24_PA_HIGH.hex 6KB
MYSBootloader.ch36.8000000L.RF24_PA_LOW.hex 6KB
MYSBootloader.ch86.8000000L.RF24_PA_HIGH.hex 6KB
共 1344 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9149
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 笔记自动驾驶预测与决策规划-Part8-数据驱动的规划方法
- yolov5目标检测模型的知识补充(基于响应的补充).zip
- yolov5检测人脸和关键点,只依赖opencv库就可以运行,程序包含C++和Python两个版本的.zip
- Git 2.47.1 arm64
- 新能源汽车充电插口类型识别-YOLOV11标记,可识别Type-2,ccs2的充电标准
- Git 2.47.1 64位
- numpy和malti相关API示例源码
- YOLOv5 采用 Flask 框架,旨在统计交通中的车辆数量.zip
- HMC830寄存器配置的FPGA实现,通过SPI接口时序完成配置
- test5_QQ浏览器压缩包.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功