NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2216 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 5 از 5 نخستنخست 12345
نمایش نتایج: از 81 به 100 از 100

موضوع: آموزش سیستم عامل rtx

  1. #81

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  4. #82
    تازه وارد
    تاریخ عضویت
    Jun 2009
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام دوستان.
    من برای کنترلر LPC1788 یه برنامه ساده نوشتم که یه ماژول gps از طریق وقفه UART هر ثانیه یک بار اطلاعات میفرسته و کنترلر در روتین وقفه evt تسک اول رو فعال میکنه. و داخل تسک اول هم تابع خواندن و دیکد کردن دیتای NMEA اجرا می شه. ولی هر کاری می کنم جواب نمیده و تسک ها اجرا نمی شن. اگر وقفه رو غیر فعال کنم تسکها اجرا می شن ولی وقتی وقفه اومد دگ هیچ تسکی اجرا نمی شه. البته بدون RTX وقفه و تابع دریافت رو چک کردم کامل کار میکنه. الان می خوام تسک هارو اضافه کنم جواب نمیده. اینم کدش :
    کد:
    OS_TID    task_ID1,task_ID2,task_ID3;
    /////////////////////////////////////////////
    void gds3(char serport){
        char str[1000];
        int i=0,m=0,n=1;
        
        while(n==1){
            str[i]=UARTGetChar(serport);
            if(strstr(str,"ANTS"))
                m=1;
            if(str[i]==13 & m==1)
                n=0;
            if(str[i]!=13 & str[i]!=10)
                i++;
            }
            GUI_Text(8,300,str,Green,Black);
    
        }
    //////////////////////////////////////////////////
    __task void task1(void){
        
        os_evt_wait_or(0x0001,0xffff);
    
        while(1){    
        gds3(UART_0);
    
    }
    ////////////////////////////////////////////////////
    __task void task2(void){
        while(1){
            
        }
    }
    /////////////////////////////////////////////////////
    __task void task3(void){
        while(1){
            
        }
    }
    /////////////////////////////////////////////////////
    __task void task_init(void){
        
        task_ID1=os_tsk_create(task1,1);
        task_ID2=os_tsk_create(task2,1);
        task_ID3=os_tsk_create(task3,1);
        
        os_tsk_delete_self();
    }
    ////////////////////////////////////////////////////
    void UART0_Init2(){
        UART_CFG_Type UART0_CFG;
        UART_FIFO_CFG_Type UART0_FIFO_CGF;
        UART0_CFG.Parity=UART_PARITY_NONE;
        UART0_CFG.Baud_rate=115200;
        UART0_CFG.Databits=UART_DATABIT_8;
        UART0_CFG.Stopbits=UART_STOPBIT_1;
        
        UART_FIFOConfigStructInit(&UART0_FIFO_CGF);
        UART_FIFOConfig(UART_0,&UART0_FIFO_CGF);
        
        PINSEL_ConfigPin(0,2,1);
        PINSEL_ConfigPin(0,3,1);
        
        UART_Init(UART_0, &UART0_CFG);
        UART_TxCmd(UART_0,ENABLE);
        UART_IntConfig(UART_0,UART_INTCFG_RBR,ENABLE);
        
        NVIC_EnableIRQ(UART0_IRQn);
        NVIC_SetPriority(UART0_IRQn,10);    
    }
    ///////////////////////////////////////////////////////
    void UART0_IRQHandler(void){
    
        isr_evt_set(0x0001,task_ID1);
    }
    /////////////////////////////////////////////////////
    int main(void){
    
        SDRAM_32M_16BIT_Init();
        GLCD_Init();
        GLCD_Clear(Black);
        UART0_Init2();
        Delay(5000);
        os_sys_init(task_init);
        while(1){
    
        }
        return 0;
    }
    ویرایش توسط mzarkoob : 11-06-2017 در ساعت 22:23

  5. #83
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2014
    نوشته ها
    32
    تشکر
    24
    تشکر شده 3 بار در 2 پست

    پیش فرض

    سلام. اقا من وقتی از usart استفاده می کنم، وقتی یک task دارم هیچ مشکلی نیست و داده مورد نظرم را پشت سر هم برایم ارسال می کند به کامپیوتر ام. ولی وقتی یک task دیگر هم اضافه می کنم، usart می اید چند بار این کار را انجام می دهد و دیگر این کار را انجام نمی دهد. استاتید محترم برای رفع این مشکل چی کار کنم؟ یک راهنمایی کوچک هم بفرمایید ممنونتان می شوم.
    با تشکر

  6. #84
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    سلام
    خیلی فرصت نکردم برنامتون را ببینم چی به چی هست ولی در استفاده از rtx به نحوه پیاده سازی مفاهیمی که وجود دارد باید خیلی دقت کرد. زیرا مثالهای موجود بیشتر در حد blikly هست و با همین مفهوم نحوه استفاده از توابع انجام شده که بایستی برای کاربرد مورد نظر توسعه داده شود.
    من فکر می کنم جداگانه در سمپل هایی مرحله به مرحله این موارد را تست کنید تا به نحوه پیاده سازی آن تسلط پیدا کنید. دانستن نحوه عملکرد توابع rtx به درک مفهوم آن فرق دارد. در فیلم پیشرفته 1788 در قسمت rtx هم سعی شده چنین کاری انجام شود.
    این تابع
    کد:
    UARTGetChar
    چطور دیتا را ازسریال میگیرد!؟ اگر با وقفه هست پس فقط در زیرروال وقفه رودیداد را فعال کرده اید؟ پس کجا دیتا میگیره؟
    من دیدم از تابع
    کد:
            GUI_Text(8,300,str,Green,Black);
    استفاده شده . چه تضمینی هست در زمان اجرای این تابع زمان تسک تمام نشده باشد؟ برای همین است که از mutex استفاده می شود....

  7. تشکرها از این نوشته :


  8. #85
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2014
    نوشته ها
    32
    تشکر
    24
    تشکر شده 3 بار در 2 پست

    پیش فرض

    سلام .ممنون. لطفا در صورت امکان لینک فیلم را هم قرار دهید با تشکر.

  9. #86

  10. #87
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2014
    نوشته ها
    32
    تشکر
    24
    تشکر شده 3 بار در 2 پست

    پیش فرض

    ممنون.

  11. #88
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2014
    نوشته ها
    32
    تشکر
    24
    تشکر شده 3 بار در 2 پست

    پیش فرض

    سلام. اقا اگر در یک تسک، بین os_mut_wait(mutex,0xffff); و os_mut_release(mutex); یک تاخیر مثلا os_dly_wait(40); اتفاق بافتد، در این زمان تاخیر، سویچ بین تسک ها انجام می شود(در واقع از این تسک می رویم در یک تسک دیگر)؟
    یا نه در همان خط منتظر می ماند که تاخیر تمام شود؟ و به تسک دیگری نمی رود. تا به os_mut_release(mutex); برسد و بعد سویچ بین تسک ها انجام می شود؟ من یک مقدار سر این قضیه گیج شدم. اساتید محترم در صورت امکان یک راهنمایی کوچک بفرماید. با تشکر

  12. #89
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    خوب چرا در عمل تست نمی کنید که چه اتفاقی می افتد!؟
    مگر چه کاری می خواهید بکنید که لازم شده این گونه عمل کنید؟

  13. #90
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2014
    نوشته ها
    32
    تشکر
    24
    تشکر شده 3 بار در 2 پست

    پیش فرض

    در عمل همه چی خوب کار می کند ولی برای مدتی!!!!!!!!!!!!!!!!!!!!!!!!!! یعنی در واقع بعد از مدتی یهو سیستم عامل هنگ می کند. و دیگر متغیر ها تغییر نمی کنند.
    به نظرتان مشکل می تواند از کجا باشد؟ از دوستان کسی به این مشکل بر خورده است ؟ اقا یک کلمه هم کمک بفرمایید ممنونتان می شوم.
    کاری که دارم انجام می دهم مربوط به ناوبری کوادروتور است. (پایان نامه ام). و نمی دانم چرا این سیستم عامل یهو ما را ضایع می کند. جان من کمک کنید.

  14. #91
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    کلا وقتی سیستم منتظر گرفتن یک ماتکس هست اون تسک به حالت wait میره تا زمانی که ماتکس رو بگیره . وقتی تسک ماتکس رو گرفت اون تسک به حالت "اجرا" در میاد.
    حالا که تسک به حالت اجرا در اومده سوییچ تسک اتفاق میافته ولی بقیه تسک ها یی که منتظر دریافت ماتکس هستند در حالت wait میمونند.
    اگر شما از Delay سیستم عامل استفاده کنید باز این تسک در حالت wait قرار میگیره و بقیه تسک هایی که در حالت Wait برای ماتکس نیستند اجرا میشوند.
    شما باید ببینید وقتی سیستم هنگ میکنه منظور چی هست!!!
    اگر hard fault باشه دسترسی به حافظه غیر مجاز رخ داده ( مثلا اشاره گری که وجود نداره ) یا شاید هم Stack overflow رخ داده که باز هم اون رو میشه فهمید
    و اخرین احتمال هم عدو تنظیم درست اینتراپت ها میتونه باشه.

  15. کاربران : 2 تشکر کرده اند از شما mrm برای ارسال این پست سودمند:


  16. #92
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2014
    نوشته ها
    32
    تشکر
    24
    تشکر شده 3 بار در 2 پست

    پیش فرض

    با تشکر از پاسخ شما اقای (خانم) mrm.
    مشکل در این بود که من os_itv_set() استفاده کرده بودم برای خواندن خروجی کالمن فیلتر ام برای زاویه های رول و پیچ و یاو. امدم انها را حذف کردم و با معادل ان os_dly_wait این کار را انجام دادم. و مشکل من حل شد. دیگر هنگ نمی کند. در واقع منظور از هنگ این بود که در یک تسک مثلا تسک مربوط به زاویه رول کالمن فیلتر، ناگهان بعد از مثلا یک دقیقه دیگر زوایه رول تغییر نمی کرد و سیستم در اخرین زاویه ای که خوانده بود گیر می کرد. که با ان تغییری که دادم مشکل حل شده است.
    از ماتکس برای usart استفاده می کنم. (اقای مهدی زرکوب پیشنهاد دادند. دستشان درد نکند.)
    اقا (خانم) mrm بابت اطلاعاتی که قرار دادید مممنونتان هستم. واقعا این ها را نمی دانستم. باز هم ممنون.

    یک سوال میزان stack یک تسک را از کجا می شود خیلی راحت محاسبه کرد؟ خود کیل گزینه ای ندارد که قطعه کدی را که نوشته ایم میزان stack ان را نشان دهد؟

  17. #93
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    خوب به سلامتی
    برای همینه که گفتم :
    مگر چه کاری می خواهید بکنید که لازم شده این گونه عمل کنید. یعنی چه عملیات مخاسباتی در تسک می خواهید انجام دهید نه برای انجام مربوط به ناوبری کوادروتور

  18. #94
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    ببینید کیل در فایل های خروجی که بهتون میده یه فایل به نام پروژه با پسوند html بهتون میده که تمام توابع رو به صورت جدا مقادیر استک رو داخلشون نوشته.
    یان فکر کنم راحت ترین راه باشه.

  19. کاربران : 2 تشکر کرده اند از شما mrm برای ارسال این پست سودمند:


  20. #95
    کاربر علاقه مند
    تاریخ عضویت
    Dec 2014
    نوشته ها
    32
    تشکر
    24
    تشکر شده 3 بار در 2 پست

    پیش فرض

    واقعا ممنونتان هستم. خیلی عالی بود. دستتان درد نکند. ممنون.
    روشتان خیلی باحال بود. انشا الله بتوان جبران کنم. فقط برای من فایلش پسوندش htm بود.

    - - - Updated - - -

    با تشکر از اقا (خانم) mrm

  21. #96
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    جبران آن وقت است پیشرفت که کردید و دیدید در فروم سوالی پرسیده شد که می توانید پاسخ دهید، نگویید من چرا باید جواب سوال دیگران را بدهم؟ بروند وقت بذارند پیدا کنند! ولی وقتی خودم سوال می کنم میگویم چرا کسی نمیاد جواب من را بدهد !؟

  22. #97
    عضو جدید
    تاریخ عضویت
    Jun 2016
    نوشته ها
    5
    تشکر
    0
    تشکر شده 2 بار در 1 پست

    پیش فرض

    سلام به دوستان عزیز. یه برنامه برای راه اندازی adc میکرو در cmsis rtos keil نوشتم که از وقفه استفاده میشه . ولی گویا برای استفاده از وقفه در سیستم عامل باید تنظیماتی انجام بشه کسی میتونه راهنمایی کنه.

  23. #98

  24. #99
    کاربر علاقه مند omid_2132 آواتار ها
    تاریخ عضویت
    Jul 2011
    نوشته ها
    86
    تشکر
    89
    تشکر شده 55 بار در 18 پست

    پیش فرض

    میشه یکی راهنمایی کنه که وقفه ها رو چطور با سیستم عامل مچ کنیم.
    مثلا وقتی برنامه بر مبنای سیستم عامل rtx میره به وقفه rtc مشکل پیش میاد.اساس و الگوریتم استفاده از وقفه ها تو سیستم عامل چه جوریه؟(با فرض اینکه تو پروژه م اصلا از delay ها استفاده نکردم.)
    ویرایش توسط omid_2132 : 05-03-2018 در ساعت 14:55

  25. #100
    مدیر انجمن mzarkoob آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    مهدی زرکوب
    نوشته ها
    2,902
    تشکر
    1,202
    تشکر شده 2,317 بار در 1,273 پست

    پیش فرض

    اگر سمپلی باشد که انجام شده باشد این موضوع روشن تر می شود.
    بالاخره وقفه هم در میکرو وجود دارد و نمی شود که نباشد. ولی در وقفه فقط می توان یک رویداد را فعال کرد که تسک دیگری منتظر این رویداد باشد.
    در سمپل can برای rl کیل تحت rtx از Mailbox استفاده کرده است.

  26. تشکرها از این نوشته :


صفحه 5 از 5 نخستنخست 12345

موضوعات مشابه

  1. [خبر] راهنمای انتخاب سیستم عامل
    توسط titery در انجمن Cortex-a8-a9 arm9-11
    پاسخ: 27
    آخرين نوشته: 26-05-2016, 12:37
  2. معرفی سیستم بلاگدهی درنا بلاگ
    توسط behnam6500 در انجمن گفت و گوي آزاد
    پاسخ: 7
    آخرين نوشته: 15-02-2014, 08:18
  3. Os سیستم عامل
    توسط akbh در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 4
    آخرين نوشته: 11-09-2011, 00:15
  4. یک اشتباه رایج در خنک نگه داشتن سیستم
    توسط arsalan681 در انجمن ترفندهای کامپیوتری/معرفی نرم افزار های مفید
    پاسخ: 0
    آخرين نوشته: 05-11-2010, 01:36
  5. سیستم ارسال اطلاعات کنترلی از طر
    توسط HN6 در انجمن پرسش و پاسخ (نرم افزارهای تخصصی)
    پاسخ: 0
    آخرين نوشته: 11-01-2008, 18:49

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •