nordic DIY记录
准备
- 我发现可以一开始就去自己打板
- PACK和各种工具都是开源的
- github上面都有很多工具
- https://github.com/NordicSemiconductor/Android-nRF-Connect

- 下载了就安装到自己的手机上,可以先做测试用
分区
这个跟工具有很大的关系,官方的开发工具是keil , 下载安装NordicSemiconductor的 PACK ,库有好几个的
芯片款式
- 尼玛市面上卖的一共有这几块芯片,
- nRF51422_xxAC用的比较多,
- 比如NRF51822 256K ROOM 32K RAM 不要选错了
- 选错了跑不动的 比了AA 或者AB 都是不一样的芯片

- 这个就是分区,首先运行BOOTLOADER
- 然后再运行到APP SD分区是Nordic 的固件 就这三个分区
- 那个FREE是SWAP分区,这个分区是用来安全升级的,类似于A/B system
- MBR没什么的,放一下API 用来调用更新SD
地址
一般记住两个地址就可以 0X03C000 和 SD SIZE
SD SIZE 看你是用哪个版本的SD 大小不一样
那么烧写 APP的 offset就不一样 需要改一下

18000 是96 K 我用的是S110
28000 = 160 K 对 是 256K 的room
RAM选择随意 够运行就可以了 预留可以大一点
空中升级
方式
空中升级是BOOTLOADER 去实现的 , 一般有两种方式
- 按键方式
- APP切换方式
两种方式都是要切换到boot 去直接运行boot
APP切换方式比较方便一点,意思就是说boot 本身就有一个蓝牙设备
跟APP的代码实现差不多 ,一样是调用 SD固件API的
还有做好的ZIP包千万要注意
不要放到类似百度云这种云端了
会加密运输的,ZIP头部都被改了
APP空中升级会不断弹出的
用QQ传输ZIP包到手机
ZIP包工具
./nrfutil.exe dfu genpkg /c/Users/10167/Desktop/2017.1.1.zip
--application nrf51422_xxac_s130.hex --application-version 0xffffffff
--dev-revision 0xffff --dev-type 0xffff --sd-req 0xfffe
做ZIP包的工具在
https://github.com/NordicSemiconductor/pc-nrfutil/releases
下载 X64 或者X86 的
example
如果你是AC 的芯片的话,最好选S130的官方实例
路径
bootloader 路径
sofeware device 路径
这个编译可以OK的,AC的芯片也不会有什么异常
不过需要改一下BOOTLOADER
-uint8_t m_boot_settings[CODE_PAGE_SIZE] __attribute__((at(BOOTLOADER_SETTINGS_ADDRESS))) __attribute__((used)); /**< This variable reserves a codepage for bootloader specific settings, to ensure the compiler doesn't locate any code or variables at his location. */
+uint8_t m_boot_settings[CODE_PAGE_SIZE] __attribute__((at(BOOTLOADER_SETTINGS_ADDRESS))) __attribute__((used)) = {BANK_VALID_APP}; /**< This variable reserves a codepage for bootloader specific settings, to ensure the compiler doesn't locate any code or variables at his location. */
将开机地址赋值一下 {BANK_VALID_APP} 就可以了
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)