سلام دوستان .
من مدتیه درگیر یک پروژه هستم و یکسری اطلاعات رومی خوام بریزم تو فاش usb.تو این پروژه از کرنل RTX استفاده کردم. ولی یه جایی به یک مشکل اساسی خوردم اونم اینکه وقتی می خوام از دستورات flash-fs استفاده کنم سیستم هنگ می کنه. همین دستورات بدون کرنل کامل جواب میدن ولی وقتی تو تسک ها میارم هنگ می کنه سیستم. تعداد تسک ها و سایزشون رو هم بالا بردم نشد که نشد. مثلا در مثال زیر سیستم میاد و موقع رسیدن به دستور fopen هنگ میکنه!!
دوستان اگه تا حالا با این مسیله مواجه شدن و راه حلی دارن ممنون می شم.
من مدتیه درگیر یک پروژه هستم و یکسری اطلاعات رومی خوام بریزم تو فاش usb.تو این پروژه از کرنل RTX استفاده کردم. ولی یه جایی به یک مشکل اساسی خوردم اونم اینکه وقتی می خوام از دستورات flash-fs استفاده کنم سیستم هنگ می کنه. همین دستورات بدون کرنل کامل جواب میدن ولی وقتی تو تسک ها میارم هنگ می کنه سیستم. تعداد تسک ها و سایزشون رو هم بالا بردم نشد که نشد. مثلا در مثال زیر سیستم میاد و موقع رسیدن به دستور fopen هنگ میکنه!!
کد:
#include <RTL.h> #include <rl_usb.h> #include <stdio.h> #include <LPC177x_8x.h> int i; FILE *f; #ifdef __cplusplus extern "C" { #endif int __low_level_init(void); // Avoid "no ptototype" warning #ifdef __cplusplus } #endif U32 retv; int __low_level_init(void) { SystemCoreClockUpdate(); // Ensure, the SystemCoreClock is set return 1; } __task void init(void); __task void usb_engine(void); __task void _rt(void); __task void init (void) { usbh_engine_all(); finit("U:"); fformat("U:"); while(1) { if(f==0) { f=fopen("test.txt","w"); for (i=1;1000;i++) fprintf(f,"ok"); fclose(f); } } } int main (void) { os_sys_init_prio(_rt,1); } void usb_engine(void) { while(1) { /* usbh_engine_all(); os_dly_wait (20);*/ } } void _rt(void) { os_tsk_create(init,1); os_tsk_create(usb_engine,1); /* Init RTX and start 'init' */ //os_tsk_create(delayMs(uint8_t timer_num, uint32_t delayInMs),5); os_tsk_delete_self(); }