由于需要定制许多参数,Bootloader是自己编写的,不是RT-Thread的Bootloader。
Bootloader在启动时需要检查SD卡上是否有升级文件,有升级文件则执行升级,没有则直接跳转到RT-thread程序,因此Bootloader和程序都需要用到SD卡,问题在于Bootloader也启用了SD卡的话,程序启动时SD卡就会挂载失败
SD卡可以初始化,但mount到根目录失败
在mount之前开启高速模式也是失败的,但有时偶尔也有开启成功的,但挂载还是失败
可以确定的是这里读取的第0扇区前64字节的数据跟正常的读到的不一样
尝试Bootloader在跳转之前关闭各种时钟也没用
不使用Bootloader直接运行同样的程序则不会有这样的错误,由于使用了Bootloader没办法使用调试器调试,不使用Bootloader又不出现问题
开发板使用的正点原子的STM32F767 Apollo开发板,RT-Thread使用版本为v4.0.1,SD卡开始用的是64的卡,后来换了16G卡还是一样
你好,你的问题解决了吗?我也是H7,sd卡报错
Function[rt_mutex_take] shall not be used in ISR
(0) assertion failed at function:rt_mutex_take, line number:660