nRf52832 Jlink烧写方法与添加设备流水号方法

一、Jlink烧写程序方法

1. 打开J-Flash

    创建一个nrf52832的工程,方法如下图1,2,3,4

2. 点击file打开烧写文件.hex 

3. 点击target 与电路板进行连接

4. 点击target--》Auto进行自动烧写

二、设备流水号操作流程

(1)

在蓝牙广播的时候名字为 SN_设备流水号(如SN_00000001)。

我们可以在原来的代码中进行以下修改和增加

constuint32_t MY_UICR_ADDR __attribute__((at(0X0007D000))) __attribute__((used)) =1;

备注这个地址0X0007D000根据自己具体情况来设定(选取应用程序未占用的地址)

1  /**@brief Function for the GAP initialization. 

2   * 

3   * @details This function will set up all the necessary GAP (Generic Access Profile) parameters of  

4   *  the device. It also sets the permissions and appearance. 

5  */ 

6    static  void  gap_params_init(void) 

7    {

 8        uint32_t                err_code;

 9        ble_gap_conn_params_t  gap_conn_params;

10        ble_gap_conn_sec_mode_t sec_mode;

13        const int len = strlen(DEVICE_NAME) + 8; 

14         char name[len];

16          int32_t serial_number;

18          serial_number=*(int32_t *)0X0007D000;

21         BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode);

23         sprintf(name,"%s%08d", DEVICE_NAME,serial_number);        

25         err_code = sd_ble_gap_device_name_set(&sec_mode,

26                                                                            (constuint8_t*)name,

27                                                                             len);

28          APP_ERROR_CHECK(err_code);

29          ......

30          }

(2)

备注信息program serial number中

address为指定烧写地址(或者重新覆盖数据地址)

Next SN指定第一次要烧写的十进制数,之后的自动更据increment数值递增。

LEN指定烧写数据长度。J-Flash烧写序列号最多支持4个字节,高于四个字节的数据J-Flash会将前四个字节取反再烧进去。

如下图所示:1. program serial number 2. 擦除整个芯片 3. 烧写完后运行程序

(3)现在将刚才工程进行编译后将其nrf52832_app.hex和softdevice.hex进行合并

          mergehex --merge softdevice.hex app_consumer_20210201_5.hex --output app_consumer_burn.hex

(4)烧写程序

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容