完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用ab32vg1的开发板,BSP版本1.1.0,rt-thread版本laster(4.1.0),创建项目。更改使用uart1打印,波特率115200。 点灯程序能够正常运行。 开启板载设备驱动Enable SDCARD,正常挂载tf卡,能够读出文件。测试时,tf卡内有文件t1.txt,采用cat t1.txt,正常输出。在终端使用cp命令拷贝文件,或输入 echo “hello” t2.txt 时出错,提示: Function[rt_mutex_take]: scheduler is not available \ | / RT - Thread Operating System 请问os_spiflash_lock函数是在什么情况下被调用的?这颗芯片是内置spi flash,然后程序加载到cache运行的吗? 这个BSP能否适配最新版本的rt-thread? 大家有没有遇到过类似的问题,是如何解决的? |
|
相关推荐
4个回答
|
|
mutex lock 必须在线程环境下运行。
|
|
|
|
修改Board.c中os_spiflash_lock和os_spiflash_unlock两个函数,增加rt_critical_level的判断。现在TF卡和音频功能都正常的,暂时没有发现问题。
这个芯片的资料极度不完整,spiflash感觉像是内部flash的操作用到,貌似碰到问题还要用猜的? 有没有哪位大神解释下,以下函数的功能和使用条件相关的限制要求。 void os_spiflash_lock(void); void os_spiflash_unlock(void); void os_cache_lock(void); void os_cache_unlock(void); RT_SECTION(".irq.cache") void os_spiflash_lock(void) { if ((rt_thread_self() != RT_NULL) && (rt_interrupt_nest == 0) && (rt_critical_level() == 0)) { rt_mutex_take(&mutex_spiflash, RT_WAITING_FOREVER); } } RT_SECTION(".irq.cache") void os_spiflash_unlock(void) { if ((rt_thread_self() != RT_NULL) && (rt_interrupt_nest == 0) && (rt_critical_level() == 0)) { rt_mutex_release(&mutex_spiflash); } } |
|
|
|
|
|
|
|
这个BSP带有静态库,源码里看不到这几个函数的调用,应该是静态库里关联调用到的。建议原厂增加这方面的介绍。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1080 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
3694 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1501 浏览 0 评论
2221 浏览 0 评论
1686 浏览 0 评论
75469 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 23:43 , Processed in 0.685774 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号