<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      RT-Thread Nano源碼淺析

      一、了解源碼

      從官方下載到RT-Thread Nano源碼目錄如下圖所示

      RT-Thread Nano源碼目錄

      1、bsp文件夾

      bsp文件夾里面存放的是板級支持包(board support package),用于存放RT-Thread為各種半導體廠商的評估板寫好的驅動程序,其中重要的主要是兩個文件

      • board.c:RT-Thread用來初始化開發板硬件的相關函數;
      • rtconfig.h:RT-Thread功能的配置頭文件,可以裁剪RT-Thread的功能;

      2、components文件夾

      其它第三方加進來的組件,比如gui、fatfs、lwip和finsh等。nano版本只放了finsh,是RT- Thread組件里面最具特色的,它通過串口打印的方式來輸出各種信息,方便我們調試程序。

      3、docs文件夾

      其他文件

      4、include文件夾

      include目錄下面存放的是RT-Thread內核的頭文件,是內核不可分割的一部分。

      5、libcpu文件夾

      存放軟件和硬件的接口文件,通常由匯編和C聯合編寫。

      6、src文件夾

      src目錄下面存放的是RT-Thread內核的源文件,是內核的核心

      二、官方移植

      1、修改board.c文件

      /*
       * Copyright (c) 2006-2019, RT-Thread Development Team
       *
       * SPDX-License-Identifier: Apache-2.0
       *
       * Change Logs:
       * Date           Author       Notes
       * 2021-05-24                  the first version
       */
      
      #include <rthw.h>
      #include <rtthread.h>
      #include "main.h"
      
      #if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP)
      /*
       * Please modify RT_HEAP_SIZE if you enable RT_USING_HEAP
       * the RT_HEAP_SIZE max value = (sram size - ZI size), 1024 means 1024 bytes
       */
      #define RT_HEAP_SIZE (15*1024)
      static rt_uint8_t rt_heap[RT_HEAP_SIZE];
      
      RT_WEAK void *rt_heap_begin_get(void)
      {
          return rt_heap;
      }
      
      RT_WEAK void *rt_heap_end_get(void)
      {
          return rt_heap + RT_HEAP_SIZE;
      }
      #endif
      
      void SysTick_Handler(void)
      {
          /* 進入中斷 */
          rt_interrupt_enter();
          /* 更新時基 */
          rt_tick_increase();
          /* 離開中斷 */
          rt_interrupt_leave();
      }
      /**
       * This function will initial your board.
       */
      void rt_hw_board_init(void)
      {
          /* 添加HAL初始化、時鐘配置、滴答時鐘配置 */
          extern void SystemClock_Config(void);
          HAL_Init();
          SystemClock_Config();
          SystemCoreClockUpdate();
          HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/RT_TICK_PER_SECOND);
      
      
          /* Call components board initial (use INIT_BOARD_EXPORT()) */
      #ifdef RT_USING_COMPONENTS_INIT
          rt_components_board_init();
      #endif
      
      #if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP)
          rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get());
      #endif
      }
      
      #ifdef RT_USING_CONSOLE
      
      static int uart_init(void)
      {
      #error "TODO 2: Enable the hardware uart and config baudrate."
          return 0;
      }
      INIT_BOARD_EXPORT(uart_init);
      
      void rt_hw_console_output(const char *str)
      {
      #error "TODO 3: Output the string 'str' through the uart."
      }
      
      #endif
      
      

      2、修改rtconfig.h文件

      #ifndef __RTTHREAD_CFG_H__
      #define __RTTHREAD_CFG_H__
      
      
      
      /*----------------------------------------------------------------------------*/
      /* 配置啟用標志(一般用 #define 或 #undef) */
      
      /* 表示RT-Thread支持libc函數(標準庫) */
      #define RT_USING_LIBC
      
      /* 表示RT-Thread支持的最大優先級數目,取值范圍為8-256,默認為32 */
      #define RT_THREAD_PRIORITY_MAX  8
      
      /* 表示操作系統每秒的 tick 數,系統時鐘周期為 1ms */
      #define RT_TICK_PER_SECOND  1000
      
      /*----------------------------------------------------------------------------*/
      /* 內核配置選項(一般用 #define 或 #undef) */
      
      /* CPU 數據對齊字節數,默認為 4 */
      #define RT_ALIGN_SIZE   4
      /* 內核對象名稱最大長度,默認為 8 */
      #define RT_NAME_MAX     8
      /* 使用 RT-Thread 組件初始化,啟用 */
      #define RT_USING_COMPONENTS_INIT
      /* 使用用戶 main 函數,啟用 */
      #define RT_USING_USER_MAIN
      /*----------------------------------------------------------------------------*/
      /* 線程配置(main 線程) */
      
      /* main 線程棧大小,默認為 512 */
      #define RT_MAIN_THREAD_STACK_SIZE     256
      /*----------------------------------------------------------------------------*/
      /* 調試配置 */
      
      /* 內核調試啟用(建議設為 0) */
      //#define RT_DEBUG
      /* 初始化調試啟用(默認關閉) */
      #define RT_DEBUG_INIT 0
      /* 線程棧溢出檢查啟用 */
      //#define RT_USING_OVERFLOW_CHECK
      /*----------------------------------------------------------------------------*/
      /* 鉤子配置(用于調試,可選) */
      
      /* 鉤子函數啟用 */
      //#define RT_USING_HOOK
      /* 空閑線程鉤子啟用 */
      //#define RT_USING_IDLE_HOOK
      /*----------------------------------------------------------------------------*/
      /* 定時器配置(可選) */
      
      /* 使用軟件延時(默認關閉) */
      #define RT_USING_TIMER_SOFT         0
      #if RT_USING_TIMER_SOFT == 0
          #undef RT_USING_TIMER_SOFT
      #endif
      
      #define RT_TIMER_THREAD_PRIO        4
      
      #define RT_TIMER_THREAD_STACK_SIZE  512
      /*----------------------------------------------------------------------------*/
      /* 內部通信配置,包括信號量、互斥量、事件、郵箱和消息隊列,根據需要配置 */
      
      //#define RT_USING_SEMAPHORE  /* 信號量*/
      //#define RT_USING_MUTEX    /* 互斥量 */
      //#define RT_USING_EVENT    /* 事件 */
      //#define RT_USING_SIGNALS  /* 信號 */ 
      //#define RT_USING_MAILBOX    /* 郵箱 */
      //#define RT_USING_MESSAGEQUEUE /* 消息隊列 */
      
      /*----------------------------------------------------------------------------*/
      /* 內存配置(可選) */
      
      /* 是否使用內存池 */
      //#define RT_USING_MEMPOOL
      
      /* 是否使用動態內存堆 */
      //#define RT_USING_HEAP
      
      /* 是否使用小內存 */
      //#define RT_USING_SMALL_MEM
      #define RT_USING_SMALL_MEM_AS_HEAP
      
      /* 示是否使用極小內存 */
      //#define RT_USING_TINY_SIZE
      /*----------------------------------------------------------------------------*/
      /* 控制臺配置(用于調試輸出) */
      
      /* 是否使用控制臺(調試接口) */
      //#define RT_USING_CONSOLE
      /* 控制臺緩沖區大小,默認為 256 */
      #define RT_CONSOLEBUF_SIZE          256
      /*----------------------------------------------------------------------------*/
      /* 驅動與設備配置(可選) */
      
      /* 使用設備驅動接口 */
      //#define RT_USING_DEVICE
      /*----------------------------------------------------------------------------*/
      /* 系統啟動與運行配置(可選) */
      
      
      /* 控制臺提供 FINSH 命令行支持 */
      //#include "finsh_config.h"
      
      
      #endif
      
      
      posted @ 2025-10-27 00:00  比特向陽  閱讀(22)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品国产一区二区三区av性色| 中文字幕国产精品自拍| 日韩毛片在线视频x| 一区天堂中文最新版在线| 亚洲鸥美日韩精品久久| 亚洲精品一二三区在线看| 日韩加勒比一本无码精品| 日本一区二区三区专线| 天天爽夜夜爱| 久热伊人精品国产中文| 久人人爽人人爽人人片av| 99久热在线精品视频| 国产精品区一二三四久久| 久久精品国产久精国产| AV最新高清无码专区| 少妇久久久久久久久久| 国产成人免费午夜在线观看| 少妇高潮惨叫喷水在线观看| 人妻无码久久久久久久久久久| 人妻人人做人碰人人添| 精品 无码 国产观看| 亚洲中文字幕av天堂| 亚洲gv天堂无码男同在线观看 | 91久久精品国产性色也| 久久婷婷五月综合色和啪| 亚洲欧美日韩在线不卡| 777天堂麻豆爱综合视频| 日本伊人色综合网| 她也色tayese在线视频| 久久综合亚洲鲁鲁九月天| 国产成人精品aa毛片| 久久久久人妻精品一区三寸 | 四虎国产精品永久入口| 免费无码一区无码东京热| 福利一区二区1000| 999福利激情视频| 亚洲欧美综合精品二区| 国产成人无码A区在线观看视频| 中文人妻AV大区中文不卡| 成人伊人青草久久综合网| 国产午夜在线观看视频|