اطلاعیه

Collapse
No announcement yet.

RTOS STM32CubeMX

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    RTOS STM32CubeMX

    درود.
    آقا کسی هست که خیلی ساده و مبتدی توضیح بده که
    1)با این سیستم عامل میشه چه کارهایی کرد اگه قراره ما دستی ورودی و خروجی هارو بخونیم و پردازش کنیم و ورودی خروجی هارو کنترل کنیم پس سیستم عامل چیکاره هست . مثلا اندروید بگی ما یه برنامه روی اون نصب میکنیم . روی این سیستم عامل که نمیشه نصب کرد ؟؟؟
    2)یه آموزش از طریقه نصب روی keil لطفا
    3)آموزش نصب روی خود arm . آیا فقط باید پروگرام کرد یا از روی فلش ... نصب میشه
    4) اندازه lcd و .... کجا باید بهش داد . اصلا روش پورت کردنش به چه شکله . باید مثل برنامه نویسی خودمون توابع داخلش اضافه کنیم ؟؟؟؟
    یه آموزش تصویری کسی داره
    ممنون

    #2
    پاسخ : RTOS STM32CubeMX

    خودم فهمیدم
    برای اجرا ی اون هم با cubemx اول یه چروژه تعریف میکنید و بعد تیک FREERTOS میزنید
    بعد به سربرگ Configutation میرید و FreeRTOS انتخاب میکنید
    یک سری تنظیمات داره که فعلا میریم به سربرگ Task and Queues . اینجا بسته به میکرو یه تعداد Task میتونیم تعریف کنیم
    حالا Task چیه . این جور بگم .فرض کنید شما یه برنامه دارید که 3 تا کار مختلف انجام میده مثلا
    یکیش lcd درایو میکنه
    بعدیش سنسور هارو اسکن میکنه
    و یکیش هم بسته به عددی که سنسورها خوانده شده خروجی هارو قطع و وصل میکنه
    شما میتونید برنامه درایو و نمایش lcd توی task 1 بنویسید
    برنامه خواندن سنسور هارو در task 2
    و برنامه سوئیچ خروجی هارو در task 3
    ,,وقتی cube کد برای شما میسازه این قسمت به برنامه شما اضافه میشه

    /* StartDefaultTask function */
    void StartDefaultTask(void const * argument)
    {


    /* USER CODE BEGIN 5 */
    /* Infinite loop */
    for(;;)
    {
    osDelay(1);
    }
    /* USER CODE END 5 */
    }


    /* StartTask02 function */
    void StartTask02(void const * argument)
    {
    /* USER CODE BEGIN StartTask02 */
    /* Infinite loop */
    for(;;)
    {
    osDelay(1);
    }
    /* USER CODE END StartTask02 */
    }


    /* StartTask03 function */
    void StartTask03(void const * argument)
    {
    /* USER CODE BEGIN StartTask03 */
    /* Infinite loop */
    for(;;)
    {
    osDelay(1);
    }
    /* USER CODE END StartTask03 */
    }

    شما دیگه نباید از دستور HAL_Delay استفاده کنید و به جای اون باید از osDelay(1); استفاده کنید

    دیدگاه


      #3
      پاسخ : RTOS STM32CubeMX

      نوشته اصلی توسط sepehr63 نمایش پست ها
      پس سیستم عامل چیکاره هست
      سام و وقت بخیر
      مهمترین مزیت RTOS ، ایجاد تسک های مختلف و سپس اختصاص اولویت های زمانی برای هر تسک ، در نتیجه کنترل ادوات سخت افزاری و نرم افزاری هست.
      توضیح خیلی ساده اینه که استفاده از RTOS ، مارو به پیاده سازی سیستم Real Time خیلی نزدیک میکنه و باعث میشه زمان های مرده توی الگوریتم حذف بشه.

      نوشته اصلی توسط sepehr63 نمایش پست ها
      روی این سیستم عامل که نمیشه نصب کرد ؟؟؟
      از طریق Cube و با انتخاب گزینه RTOS میشه دسترسی به RTOS ، ایجاد تسک ، ایجاد اولویت ها ، ایجاد متغیرها و ... را در کدهای خروجی برای ادیتور و کامپایلر مورد نظر داشته باشیم.
      البته منظور از RTOS محیط گرافیکی نیست و فقط بعنوان کرنل و به بیان ساده تر با کدنویسی از RTOS استفاده میشه ؛ هرچند ایمیج لینوکس برای سریهای F4 و مخصوصاF7 (میکروهای STM32F746BIT6 / STM32F746NGH6) بعنوان تحولی در میکروکنترلرها ارایه شده اما معنی ایمیج لینوکس که بعنوان سیستم عامل نصب میشه با RTOS متفاوته.
      Reveng will surely come... Your hard time are ahead
      // - - - - - - - - - -
      برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
      // - - - - - - - - - -
      اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
      // - - - - - - - - - -

      دیدگاه

      لطفا صبر کنید...
      X