因为客户需要做文件系统,因此做了filex,但是里面的坑也不少啊。比如报错0x90 0x18、电脑格式化新sd卡识别不到,必须用fx_media_format格式化才可以,用这个格式化以后再用电脑格就都能识别出来、重复fx_media_open和fx_media_close以后会报错0x90 0x18,不同cpp文件调用filex对同一个SD卡进行读写发现sd卡的结构体寄了等等问题。
坑1
首先filex必须要运行在ThreadX的线程里,不论调用任何fx函数,它都会进行检查,以fx_media_open为例,它会先调用_fxe_media_open函数,在这里就会有一个FX_CALLER_CHECKING_CODE来判断当前代码是否运行在threadx的线程中,如果不在的话他就会直接报错。
当时同事代码初始化直接在主线程tx_application_define里用的函数去写,我接过来写发现无法正常调用。
坑2
最好为SD卡以及filex的open_media单独创建