一、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)烧写程序