LPC1778 U盘进行bootloader

      最近在搞BOOT,于是利用手里的板子LPC1778的片子进行调试。

  先去网上找了下发现没有LPC1778U盘进行更行的历程,于是只能自己动手做了。


  1.首先当然是U盘底层驱动,这里没什么可说的,当然是下载NXP官网最新的底层库,然后再弄个FAT文件系统,一切似乎都是水到渠成没有什么大的问题。但是当我在调试时却发现枚举成功后却不能读写U盘。单步调试发现没有文件系统,读写U盘零扇区返回0,本来应该是返回MBR的。

这是为什么呢?在网上找了问了好久才找到,可能问题出在LPC1778片子上。重新查看数据手册,发现U盘底层读写的缓存是存放在设备RAM中的,而FAT文件系统中的BUFF是放在RAM中,无法读取设备RAM中的数据。于是这又引出另一个问题:如何读取设备RAM中的数据呢?

   1)可以将FAT中的结构体(主要是FAT FIL)定义到设备RAM中。(此设计到MDK的环境设置以及分散加载文件,后续会讲如何修改)

   2)利用NXP底层驱动中定义的变量

volatile  uint8_t *FATBuffer;   /* Buffer used by FAT file system     */

volatile  uint8_t *UserBuffer;  /* Buffer used byapplication          */ 

进行读写,再使用memcpy进行复制到FAT的BUFF中,虽然繁琐但是简单实用。

到这里U盘底层驱动就结束了。


  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值