Noridc 52832 SPI Flash 驱动+应用+文件系统

Noridc 52832 SPI Flash 驱动+应用+文件系统,第1张

注意:因为TWI0和SPI0为同一地址,TWI0已经被G-Sensor使用,所以我们使用SPI1

注意

注意:52832的nrf_drv_spi_transfer函数限制了每次读写不能超过251字节,所以要特殊处理一下。读可以任意地址读,写不能跨页写,正常一页256字节每次都需要分成251+5两次写

考虑到单片机系统没有文件系统管理,每次读写文件异常麻烦,所以我们移植一个小型嵌入式文件系统(带断电恢复以及磨损平衡)。

Github地址: https://github.com/ARMmbed/littlefs

注意:Flash芯片为128M,只配置了其中的16M

上电后处理器要从地址0读取指令,根据启动方式将地址重映射后向总线发出请求并等待,spi flash控制器一位一位地给flash发命令发地址,再一位一位地读回数据,响应总线的请求。处理器要耐心等待,总线控制器会协调好的。等待是常有的事情,包括访问nand flash,包括访问ddr sdram。我感觉fpga的avalon总线时序有参考价值

平台同稍差异般流程都差

首先修改trunk/tools/firmware-utils/src/mktplinkfw.c

修改fw_max_len0xfc000016M flash;修改fw_max_len0x7c00008M flash

.id = "4M",

.fw_max_len = 0xfc0000,

.kernel_la = 0x80060000,

.kernel_ep = 0x80060000,

.rootfs_ofs = 0x140000,新版用改fw区表自认用像版自定义每区

另外需面修改:

Imagebuilder 目录./target/linux/ar71xx/image/Makefile, 703n4Mlzma改8Mlzma或16Mlzma

$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,8Mlzma))

否则现错误:

[mktplinkfw] kernel length aligned to 914864

[mktplinkfw] *** error: images are too big

make[3]: [install] Error 255 (ignored)

openwrt能更新uboot需要做修改:

target/linux/ar71xx/files/drivers/mtd/tplinkpart.c

parts[0].mask_flags = MTD_WRITEABLE//除本行


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7822491.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存