进阶体验

完成快速体验后,再体验设备的注册和相关操作。以SPIFlash为例进行说明。

../_images/sch.png

补充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);	

微信截图_20220319190734