完善资料让更多小伙伴认识你,还能领取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带有静态库,源码里看不到这几个函数的调用,应该是静态库里关联调用到的。建议原厂增加这方面的介绍。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
806 浏览 0 评论
5158 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2666 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
3008 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
32178 浏览 11 评论
73214 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 07:50 , Processed in 0.774185 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号