对于标准(串行)norflash
只需想想非常简单的内容,例如语言数据:在“非常小”的嵌入式设备上(不是“大”,例如嵌入式Linux,但可以用小电池运行多年):通常是在“代码中的某个地方”集成的。
很难改变!但是,如果语言数据在文件中,则更改很容易。对于图形,设置,所有内容……甚至允许从许多不同来源更改嵌入式设备上的固件!
想想嵌入式设备,甚至可以自己获取最新的固件!例如,通过wifi,移动互联网,蓝牙,UART,无线电链接,…
突然所有选项都打开了!而且,如果您对安全性有疑问:不用担心:问题已经解决,正如您稍后会看到的。
到目前为止,“非常小的设备”的主要问题是“文件系统”:每个人都知道“ fat”,“ ntfs”,……但是您是否曾经想过一个小芯片上的文件系统?甚至在CPU内部?没问题,使用正确的软件。这就是为什么我写信
“ JESFS - JO的嵌入式序列文件系统”

[图片:2x3毫米的4MB JESF]
我的日常工作是物联网。因为我没有找到任何真正实用的解决方案,所以我决定创建自己的解决方案。我的设计限制是“鲁棒性”,“安全性”和“小足迹”。
JESFS设计用于在“现实世界”中使用,并与NRF52840-DK,NRF52832和CC13XX/CC26XX启动板一起使用,用于标准的串行Nor-Flash记忆,例如M25R系列(M25R系列),最多可获得16 MB,甚至更多…
关于JESF的一些基础知识:
int16_t fs_open(FS_DESC *pdesc, char* pname, uint8_t flags);
int32_t fs_read(FS_DESC *pdesc, uint8_t *pdest, uint32_t anz);
int16_t fs_write(FS_DESC *pdesc, uint8_t *pdata, uint32_t len);
int16_t fs_close(FS_DESC *pdesc);
int16_t fs_delete(FS_DESC *pdesc);
int16_t fs_rewind(FS_DESC *pdesc);
int16_t fs_rename(FS_DESC *pd_odesc, FS_DESC *pd_ndesc);
uint32_t fs_get_crc32(FS_DESC *pdesc);
int16_t fs_check_disk(void cb_printf(char *fmt, ...), uint8_t *pline, uint32_t line_size);
int16_t fs_format(uint32_t f_id);
int16_t fs_start(uint8_t mode);
void fs_deepsleep(void);
int16_t fs_info(FS_STAT *pstat, uint16_t fno);
void fs_sec1970_to_date(uint32_t asecs, FS_DATE *pd);
许多技术设备可靠多年可靠,没有人关心它们。但是,如果他们失败了,总会有一个问题:出了什么问题?
这就是JESF可能变得非常有用的地方。
阅读更多:blackbox_eval.pdf
宽电压范围(1.6V-3.6V)和超低功率备用:



用SES(v6.22a( ))和SDK 17.1.0( :SES的后期版本需要更改的项目设置!!!)
设置宏$ sdk_root在ses->>工具 - >选项 - > building:eg:“ global macros”:“ sdk_root = c: nordic nrf5_sdk_17.1.1.1.0_dddde560”
用I/O-Pins设置平台宏(请参阅tb_tools.h)
可选地解决NRF_CLOCK()(请参阅docu tb_tools_nrf52.c/.h)