进阶体验
完成快速体验后,再体验设备的注册和相关操作。以SPIFlash为例进行说明。
补充MCU资源初始化
在快速体验工程的基础上,增加了硬件SPI,和F_CS引脚。增加SPI的初始化以及GPIO的初始化。
代码省略….
添加驱动文件
添加 bos/drivers/b_drv_spiflash.c
BabyOS里面SPIFLASH的驱动是基于sfud代码编写。因此也要添加sfud部分的代码。
添加 bos/drivers/sfud/
路径的代码。
添加硬件接口
在b_hal_if.h里面修改硬件接口。
记录开机次数
在SPIFLASH的地址0x00000000记录开机次数,增加如下代码
int fd = -1;
uint32_t boot_count = 0;
fd = bOpen(bSPIFLASH, BCORE_FLAG_RW);
bLseek(fd, 0);
bRead(fd, (uint8_t *)&boot_count, sizeof(boot_count));
b_log("boot:%d\r\n", boot_count);
boot_count += 1;
bFlashErase_t bFlashErase;
bFlashErase.addr = 0;
bFlashErase.num = 1;
bCtl(fd, bCMD_ERASE_SECTOR, &bFlashErase);
bLseek(fd, 0);
bWrite(fd, (uint8_t *)&boot_count, sizeof(boot_count));
bClose(fd);