NuttX

軟件截圖:
NuttX
軟件詳細信息:
版本: 7.9 更新
上傳日期: 10 May 15
開發: Gregory Nutt
許可: 免費
人氣: 53

Rating: 4.0/5 (Total Votes: 1)

NuttX是一個開源的,確定性的和免費的嵌入式實時操作系統(RTOS),從偏移設計在深深嵌入,資源受限的環境中使用。它具有佔地面積小即是在微控制器的環境中使用,並且它大局;全面升級,從微小的(8位),中度嵌入式(32位)系統。
它的目的還在於要完全符合標準,完全實時,並完全開放。 NuttX擁有豐富的功能集操作系統,採用模塊化設計,它是高度可擴展性和可配置性,以及符合標準的。它是帶有一個非限制性的BSD許可證。它往往是由它的開發者在glanceKey功能被戲稱為“微型Linux。”其特點包括核心任務管理,BSD套接字接口,內存分配器(共享內存,標準堆內存分配,保護與建設MPU,平嵌打造,每進程堆,顆粒分配和動態調整),內存配置,移植指導,全面搶占,滴答操作,按需分頁和系統日誌。
此外,該項目附帶的擴展管理優先購買權,每線程,內置CPU負載測量,全面的文檔,包含地址的環境中,ANSI和類類POSIX的任務控制,時鐘,pthreads的可選任務,環境變量,信號,命名為消息隊列,定時器,文件系統和計數信號量。
在其他功能,我們可以提到循環調度,FIFO,優先級繼承,為SoC架構支持,主板支持體系,為新的處理器架構的支持,看門狗定時器,VxWorks的狀任務管理,I / O重定向和支持傳輸“控制終端”的支持platformsNuttX支持多種硬件平台,其中我們可以提到眾多的ARM處理器,包括ARM Cortex-M3的,ARM926EJS,ARM7TDMI,ARM的Cortex-M4,ARM的Cortex-M0,ARM920T和ARM的Cortex-A5,以及Atmel的8位AVR,飛思卡爾M68HCS12,AVR32 Atmel的AVR平台。
此外,它也支持各種Intel平台,如微型芯片PIC32MX(MIPS),80C52和80倍; 86,Zilog的平台,包括Zilog公司Z80,Zilog公司Z16F,Zilog公司Z8Encore!和Zilog公司EZ80喝彩!和瑞薩/日立的SuperH和瑞薩M16C / 26平台

什麼在此版本中是新的

  • 特點:附加新的功能和擴展功能:
  • 核心操作系統:
  • 看門狗定時器分配:(1)如果我們運行了預分配看門狗倍,邏輯現在從堆中分配額外的計時器。預分配看門狗定時器一個儲備保持這樣總是會有供中斷處理程序定時器。 (2)增加支持靜態分配的看門狗定時器
  • 地址環境支持:(2)新的OS API納入所有平台特定上下文切換邏輯(up_block_task(),up_unblock_task(),_exit(),及其他)
  • 在內核構建技術支持:(1)基於MPU"內核構建"重命名為一個受保護的版本(CONFIG_BUILD_PROTECTED);添加了對新的基於MMU"內核構建" (CONFIG_BUILD_KERNEL),(2)系統調用庫現在可以與CONFIG_NUTTX_KERNEL建造。新的選擇*:CONFIG_LIB_SYSCALL
  • 系統啟動:添加配置選項來啟動系統從上一個文件系統中的程序(相對於在存儲器中的地址)
  • 啟動參數傳遞:過去有兩種方式將參數傳遞給新的任務,根據配置:要么(1)的argv []與strdup'ed每個字符串數組作為創建的。或(2)的argv []數組和字符串被堆棧上的新任務開始前創建的。現在,只有一個方式,方法(2)。方式(1)可能會稍微更緊湊,但是這是不值得攜帶兩個不同做同樣的事情的方法的複雜度。
  • 板初始化:添加能力,在一個單獨的工作線程執行初始板的初始化。這是必要的,因為有許多情況下,初始化邏輯不能啟動/空閒線程上執行。這是因為阻塞或等待沒有空閒線程上允許的。
  • 內存管理:
  • 顆粒分配器:(1)添加新的功能,保留未分配的地區,在顆粒堆。 (2)添加接口,以支持聯合國初始化顆粒分配器。
  • 頁分配器:添加基於現有NuttX顆粒分配器一個簡單的物理頁分配器。我不能肯定,如果顆粒分配足夠確定性的長期的使用範圍,但它得到得到一個頁面分配到位,用於測試速度非常快。
  • 刪除CONFIG_MM_MULTIHEAP:不再支持非multiheap操作
  • SBRK():SBRK()現在支持內核構建,允許動態調整,每進程堆
  • 每進程堆:在過程數據空間的開始的空間現在被保留為用戶堆的管理結構。在內核構建模式,這些堆結構內核和利用代碼之間,以便分配用戶特定數據共享。
  • 在用戶的堆管理:當一個特權線程退出,我們必須使用內核分配以釋放內存;當一個非特權線程退出,我們沒有做任何事情......堆內存將被清理時,地址環境被拆除。
  • 在進程間共享內存支持:(1)執行添加和文件shmget的(),了shmctl()的shmat()和shmdt取消()。 (2)加入系統的系統調用,以支持用戶調用門到共享內存接口。 (3)添加到支持共享內存功能需要特定平台的接口定義。
  • 在虛擬頁面分配器:添加支持每個進程的虛擬頁分配器。這是task_group_s結構的一個新成員。當啟動一個新的用戶進程的分配必須初始化和的未初始化時,進程組最終銷毀。它用於通過執行shmat()和shmdt取消()挑虛擬地址到其上映射共享物理內存。
  • 在文件系統/塊驅動程序/ MTD:
  • SMART FS:FS智能和SMART FS PROCFS從肯·佩蒂特更新
  • MTD:出現MTD​​預讀/寫緩衝層現在可以正常
  • 二進制文件格式:
  • 在每進程堆:添加邏輯來初始化每個進程的用戶堆時,每次啟動用戶進程
  • 圖形:
  • NxTerm:更改NxConsole所有出現的NxTerm
  • 網絡:
  • PHY中斷:(1)規範的PHY中斷附件接口。 (2)增加支持可用於通知一個應用程序的讀寫控制時,有在網絡狀態由PHY中斷信號的變化。
  • 改進發送邏輯:在過去,第一個數據包發送到一個新的網絡同行會失敗;會有ARP表為同行中沒有入口,因此一個ARP請求可能會取代第一個數據包。現在,作為一個選項,如果CONFIG_NET_ARP_SEND = Y,所有發送邏輯將(1)檢查對端MAC地址在ARP表中,如果沒有,(2)發送ARP請求定期獲得映射和(3)等待ARP響應。然後(4)被接收時的ARP響應,那麼實際發送邏輯將開始。因此,有可能與發送到一個新的對等體的第一個分組的延遲,但該分組不應丟失
  • 主機模擬:
  • 在SPI閃存驅動器:仿真的SPI閃存驅動器從肯·佩蒂特的SIM目標
  • 英特爾的x86:
  • 默認主機:默認的主機現在和x86_64 -m32選項將自動選擇仿真構建
  • 在英特爾8051系列:
  • 8051刪除:刪除了8051系列架構從NuttX源樹中的所有支持。隨著去除補丁的已經過時的代碼,現在可以在雜項/已過時/中找到。除去這個代碼,因為(1)儘管一些功能已經證明,我不知道NuttX的任8051任何真正成功的端口,(2)8051,具有其硬件堆棧,強制限制和並發症的其它架構和使經濟增長NuttX和發展更為複雜。
  • 在ZiLOG的ZNeo板:
  • 的configs / 16Z:支持這款主板已經從NuttX源代碼樹中刪除(但仍然可以在雜項/已過時目錄中找到)。這個端口是沒有準備好使用,但可能會返回到NuttX樹在未來的某個時候。
  • 愛特梅爾SAM3 / 4板:
  • SAM4E-EK:添加(1)全功能ILI9341型LCD驅動器和(2)全功能配置NxWM
  • 的ARMv7-A:
  • 地址環境:支持添加使用Cortex-A MMU應用程序地址的環境。實施NuttX地址環境的支持標準化平台特定的接口。
  • 緩存操作:實行規範化,平台特定的緩存操作。這些是從ELF加載器,以刷新D-cache和無效的I-緩存後ELF模塊已經被加載到內​​存中調用。這種變化,ELF模塊SAMA5 /的Cortex-A平台上正常工作。
  • 內核構建:(1)添加系統調用門的實現。 (2)添加也可以單獨構建的用戶程序鏈接CRT0啟動文件。 (3)增加支持的內核構建交付使用模式的信號。 (4)添加邏輯時,每次啟動用戶進程初始化每個進程的用戶堆。 (5)的ARMv7-A的異常處理需要一點點的工作方式不同,如果我們支持用戶模式進程。這是因為,R13和R14是用戶和SVC模式之間分頁不同。
  • 在共享內存支持:(1)添加必要的邏輯來處理共享內存的上下文切換重映射。 (2)擴展的虛擬/物理地​​址的轉換,包括在共享內存地址。 (3)加入實施特定於平台的共享內存的支持。
  • 愛特梅爾SAMA5D驅動程序:
  • 網絡讀寫控制:實現所有網絡讀寫控制,包括新的ioctl設置PHY事件通知
  • 地址轉換:在內核建立與地址的環境,需要邏輯映射用戶虛擬地址到物理地址,反之亦然
  • 愛特梅爾SAMA5D板:
  • SAMA5D3 Xplained,SAMA5D3-EK,並SAMA5D4-EK:將現有的董事會具體PHY接口中斷使用新定義的標準接口
  • SAMA5D4-EK:添加配置用於測試內核構建的配置。有配置,無論是從SD卡或者和內存ROMFS文件系統引導。
  • SAMA5D4-EK:添加文檔/支持版本E.板
  • 意法半導體STM32驅動程序:
  • 以太網:修改以支持更改網絡簽名IOCTL變化。還添加了新的ioctl設置PHY事件通知的支持。
  • 意法半導體STM32板:
  • STM32F4Discovery與STM32F4DIS-BB:添加網絡啟用NSH配置為STM32F4Discovery板安裝STM32F4DIS-BB基板。包括對STM32F4DIS-BB基板microSD卡插槽的支持。
  • TI全憑司機:
  • TI CC3200:添加支持TI的CC3200。吉姆尤因。
  • TI全憑靜脈麻醉板:
  • 在TI CC3200的Launchpad:添加支持TI的CC3200啟動板。吉姆尤因。
  • C庫:
  • 在民意調查():重新實現輪詢()使用sem_timedwait延遲()
  • 在配置/編譯系統:
  • 導出目標:在內核或保護構建,(1)只有用戶庫應出口,(2)不要複製內部的頭文件或構建腳本,如果這是一個內核或保護的身材,和(3)需求捆綁了用戶C啟動文件(信息crt0),而不是內核頭部對象內核和保護的基礎之上。
  • 程序CFLAGS:添加邏輯,這將允許我們建立用戶庫具有不同的CFLAGS比內核代碼。這是必要的,因為我們建立ELF代碼,以防止SHN_COMMON重定位時需要的-fno-常見的選擇。
  • 應用程序:
  • NSH:擴展NSH網絡初始化邏輯。現在有將創建一個網絡監視線程將監視鏈路的狀態的選項。當鏈路發生故障,代碼會嘗試正常放以太網驅動程序在關閉狀態;當鏈路回來,代碼將嘗試將網絡備份。
  • ELF例:精靈測試/例如一直延續所以個人ELF測試程序可以對系統調用鏈接庫(如果可用),或者對C庫,以消除或減少需要符號表
  • NxTerm:更改NxConsole所有出現的NxTerm
  • MTDRWB例如:添加一個例子來測試MTD R / W緩衝
  • 在OS測試例:添加sem_timedwait的一個微不足道的測試()
  • 在應用程序配置/編譯系統:
  • 導入目標:(1)添加的邏輯,這將使建築應用針對NuttX出口包(主場迎戰nuttx /源代碼樹)。 (2)添加config文件導出包。 (3)創建的應用程序/進口。創建應用程序/進口/ Make.defs,做事情像定義CFLAGS; ELF建設需要-fno-常見於CFLAGS。從nuttx /工具/ Config.mk到應用程序/進口/ Make.defs複製一些基本邏輯。 (4)添加應用程序/進口/腳本/ GNU-elf.ld GCC鏈接腳本ELF進口的基礎之上。
  • 所有的Makefile:(1)添加的安裝目標為所有makefile文件。對於進口版本,頂級的Makefile現在這樣兩個過程:(1)建立libapp.a,然後(2)安裝程序到應用程序的/ bin中。 (2)添加程序安裝的CONFIG_BUILD_KERNEL在建立一個main()的所有Makefile文件。 (3)對於內核構建,主要包括()目標文件不能進入,因為名稱衝突的庫。目標文件必須在每一個Makefile中的特殊情況來處理。
  • 所有內置程序:隨著內核版本(CONFIG_BUILD_KERNEL),切入點所有任務主要是(),而不是一些xyz_main()
  • NSH:有幾個命令都必須在內核構建被禁用,因為它們依賴於不可用的內核的外部接口:PS DD,DF,losetup,mkfatfs,mkdr和
  • 在應用程序/工具/:(1)添加mkimport.sh爆炸的NuttX導入包並安裝應用程序中的/進口。 (2)添加mkromfsimg.sh腳本來創建一個啟動ROMFS文件系統映像。
  • ELF和NxFLAT例子:不要構建使用task_create()如果有一個地址的環境測試用例
  • 工具:
  • refresh.sh:添加工具,使清新的配置更容易,當你想要做他們中的很多
  • mksyscall.c:構建的系統調用不需要頭文件
  • mkexport.sh:添加config文件導出包
  • 在應用程序/工具:用於新的應用程序/工具腳本見上面
  • 在努力正在進行中。以下是部分地實現,但目前此版本中的功能。他們不可能很快完成。
  • 進程:大部分在此版本中的工作重點是實現在NuttX Unix風格的用戶進程。然而,還有更多的工作要做。完整的路線圖和狀態,請訪問:http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMEGA:有到位一些片斷為XMEGA端口。該端口還沒有真正開始然而,。
  • 伽利略:同樣,也有到位片斷為英特爾伽利略端口。端口尚未開始認真任。
  • 錯誤修正。只有最關鍵缺陷在這裡列出(見更新日誌錯誤修正的完整列表,以及額外的,更詳細的信息,修正錯誤):
  • 核心操作系統:
  • 在內核構建修正:(1)空閒TCB設置需要指出的空閒線程是特權,內核線程。 (2)不要構建task_create()或ta​​sk_spawn()接口,如果有一個地址的環境。 (3)的posix_spawn()內核代理線程應該是一個內核線程,而不是一個用戶的任務。
  • 若干pthread的接口:添加常量存儲類phthread參數。從房地美肖邦。
  • 在附表/時鐘:刪除g_tickbias的痕跡;需要,相反,施加時間偏置,以便提供正確的系統時間來g_basetime。
  • 系統調用:(1)幾個錯別字固定; exevc的校正積分(),execvl(),的posix_spawn(),和posix_spawnp()系統調用。 (2)如果配置為使用一個內核堆棧,而在處理SYSCALL,那麼我們就需要切換到用戶堆棧傳遞的信號。
  • 在文件系統/塊驅動程序/ MTD:
  • procfs:已修復通過重新組織一些非reorganizable數據結構引入了一些procf破損。從肯佩蒂特。
  • AT45:在at45db_bwrite(),緩衝區寫超過1頁時,不增加。 SourceForge上的錯誤#34。
  • 二進制文件格式:
  • ELF搬遷:搬遷某些類型不具有與它們相關聯的命名標誌。該設計沒有考慮這種情況。
  • ELF裝載機:關鍵bug修復.. BSS沒有被清零
  • 內存管理:
  • 顆粒分配器:分配器顆粒使用初始化錯誤分配給預留內核內存
  • 特權群體:添加一個標誌,組結構:如果組是由內核線程創建,則該組中的所有資源必須是特權
  • Cryptogrphic支持:
  • 在加密/ cryptodev.c:扭轉路徑段包含文件的路徑。由阿什頓·布倫南指出。
  • 通用​​驅動程序:
  • 通用​​CAN上半:在can_txdone,對信號服務員應考慮can_xmit的返回值的通知。首先它返回-EIO如果沒有新的數據包,和第二侍者的信息是關於傳送的最後一個數據​​包。從丹尼爾·拉茲洛Sitzer。
  • ARM:
  • 系統調用:從堆棧中獲取參數修正時,在系統調用一個錯字:暫存器[REG_PC] +4的地址,而不是暫存器[REG_PC + 4]
  • 意法半導體STM32驅動程序:
  • STM32 F401 UART:這個芯片上USART6正確的支持。從房地美肖邦。
  • STM32 FLASH修復:使用代替uint16_t為size_t,使界面更加通用。從房地美肖邦。
  • STM32 UART:修正了UART7和UART8的STM32時鐘從阿頓啟用
  • CAN:在中斷處理程序結束時,中斷被被禁用,如果所有報文已被轉移被調用中斷處理程序時。這是有問題的,因為中斷處理程序調用上半部分可以排隊新的數據包發送can_txdone()。除去塊完全,因為can_txdone()調用can_xmit(),它禁止中斷,如果沒有新的數據包發送。從丹尼爾·拉茲洛Sitzer。
  • CAN:其他STM32的CAN校正由Max Holtzberg建議
  • 意法半導體ST32板:
  • 的configs / MIKROE-STM32F4:修復了一些漏洞進行編譯和次要更正MIKROE-STM32F4配置源。從肯佩蒂特。
  • 在ARM9 /的ARMv7-A:
  • 系統調用:修復ARM7 / 9和Cortex-A的系統調用:對於SVC模式線程,SVC指令則會覆蓋R14。這必須採取賬戶內聯彙編。
  • 任務設置:所有任務,甚至是用戶模式的任務,必須在管理員模式下啟動,直到他們得到過去的初創蹦床
  • 的ARMv7-A:修改up_fullcontextrestore()為CONFIG_BUILD_KERNEL。它改變CPSR而在內核中。這將崩潰,如果新CPSR是用戶模式,而在內核空間執行。通過添加SYS_context_restore系統調用固定。還有另一種選擇,簡單的修改up_fullcontextrestore(),可能已經完成:它可能已經可以使用SPSR,而不是CPRSR,然後做從up_fullcontextrestore異常回報()。這將是更有效的,但我從來沒有嘗試過。
  • 愛特梅爾SAM3 / 4板:
  • SAM3X / Arduino的截止時間:修正錯字sam3x_periphclks.h;添加SCLK定義,board.h頭文件。從法比安斯基孔德。
  • SAM3 RTT:只有SAM4家庭有在MR寄存器RTTDIS位。 SourceForge上的錯誤#33從法比安斯基孔德。
  • C庫:
  • 的sscanf():NuttX的libc試圖猜測多少個字符來分析,他們提取到緩衝區中,然後與strtol跑()上的緩衝。這猜測是經常出錯。更好的方法是調用與strtol()直接輸入數據,使用endptr返回值來確定多少個字符跳過後解析。從Kosma Moczek。
  • 數學庫:修正ATAN2從丹尼斯Arnst實施
  • 在浮點輸出:更改為lib_dtoa()從尾隨零修正精度誤差。從鮑勃Doiron。
  • 應用程序:
  • 修正NSH PS命令​​:如果沒有參數,它可以打印成垃圾的參數列表
  • 在配置/編譯系統:
  • 空舉例:需要包括它的config.h為了知道這是或不是一個內核構建。這個問題仍然存在於可能需要定義主(幾個其他文件)。

什麼版本7.8是新的

  • 特點:附加新的功能和擴展功能:
  • 核心操作系統:
  • 看門狗定時器分配:(1)如果我們運行了預分配看門狗倍,邏輯現在從堆中分配額外的計時器。預分配看門狗定時器一個儲備保持這樣總是會有供中斷處理程序定時器。 (2)增加支持靜態分配的看門狗定時器
  • 地址環境支持:(2)新的OS API納入所有平台特定上下文切換邏輯(up_block_task(),up_unblock_task(),_exit(),及其他)
  • 在內核構建技術支持:(1)基於MPU"內核構建"重命名為一個受保護的版本(CONFIG_BUILD_PROTECTED);添加了對新的基於MMU"內核構建" (CONFIG_BUILD_KERNEL),(2)系統調用庫現在可以與CONFIG_NUTTX_KERNEL建造。新的選擇*:CONFIG_LIB_SYSCALL
  • 系統啟動:添加配置選項來啟動系統從上一個文件系統中的程序(相對於在存儲器中的地址)
  • 啟動參數傳遞:過去有兩種方式將參數傳遞給新的任務,根據配置:要么(1)的argv []與strdup'ed每個字符串數組作為創建的。或(2)的argv []數組和字符串被堆棧上的新任務開始前創建的。現在,只有一個方式,方法(2)。方式(1)可能會稍微更緊湊,但是這是不值得攜帶兩個不同做同樣的事情的方法的複雜度。
  • 板初始化:添加能力,在一個單獨的工作線程執行初始板的初始化。這是必要的,因為有許多情況下,初始化邏輯不能啟動/空閒線程上執行。這是因為阻塞或等待沒有空閒線程上允許的。
  • 內存管理:
  • 顆粒分配器:(1)添加新的功能,保留未分配的地區,在顆粒堆。 (2)添加接口,以支持聯合國初始化顆粒分配器。
  • 頁分配器:添加基於現有NuttX顆粒分配器一個簡單的物理頁分配器。我不能肯定,如果顆粒分配足夠確定性的長期的使用範圍,但它得到得到一個頁面分配到位,用於測試速度非常快。
  • 刪除CONFIG_MM_MULTIHEAP:不再支持非multiheap操作
  • SBRK():SBRK()現在支持內核構建,允許動態調整,每進程堆
  • 每進程堆:在過程數據空間的開始的空間現在被保留為用戶堆的管理結構。在內核構建模式,這些堆結構內核和利用代碼之間,以便分配用戶特定數據共享。
  • 在用戶的堆管理:當一個特權線程退出,我們必須使用內核分配以釋放內存;當一個非特權線程退出,我們沒有做任何事情......堆內存將被清理時,地址環境被拆除。
  • 在進程間共享內存支持:(1)執行添加和文件shmget的(),了shmctl()的shmat()和shmdt取消()。 (2)加入系統的系統調用,以支持用戶調用門到共享內存接口。 (3)添加到支持共享內存功能需要特定平台的接口定義。
  • 在虛擬頁面分配器:添加支持每個進程的虛擬頁分配器。這是task_group_s結構的一個新成員。當啟動一個新的用戶進程的分配必須初始化和的未初始化時,進程組最終銷毀。它用於通過執行shmat()和shmdt取消()挑虛擬地址到其上映射共享物理內存。
  • 在文件系統/塊驅動程序/ MTD:
  • SMART FS:FS智能和SMART FS PROCFS從肯·佩蒂特更新
  • MTD:出現MTD​​預讀/寫緩衝層現在可以正常
  • 二進制文件格式:
  • 在每進程堆:添加邏輯來初始化每個進程的用戶堆時,每次啟動用戶進程
  • 圖形:
  • NxTerm:更改NxConsole所有出現的NxTerm
  • 網絡:
  • PHY中斷:(1)規範的PHY中斷附件接口。 (2)增加支持可用於通知一個應用程序的讀寫控制時,有在網絡狀態由PHY中斷信號的變化。
  • 改進發送邏輯:在過去,第一個數據包發送到一個新的網絡同行會失敗;會有ARP表為同行中沒有入口,因此一個ARP請求可能會取代第一個數據包。現在,作為一個選項,如果CONFIG_NET_ARP_SEND = Y,所有發送邏輯將(1)檢查對端MAC地址在ARP表中,如果沒有,(2)發送ARP請求定期獲得映射和(3)等待ARP響應。然後(4)被接收時的ARP響應,那麼實際發送邏輯將開始。因此,有可能與發送到一個新的對等體的第一個分組的延遲,但該分組不應丟失
  • 主機模擬:
  • 在SPI閃存驅動器:仿真的SPI閃存驅動器從肯·佩蒂特的SIM目標
  • 英特爾的x86:
  • 默認主機:默認的主機現在和x86_64 -m32選項將自動選擇仿真構建
  • 在英特爾8051系列:
  • 8051刪除:刪除了8051系列架構從NuttX源樹中的所有支持。隨著去除補丁的已經過時的代碼,現在可以在雜項/已過時/中找到。除去這個代碼,因為(1)儘管一些功能已經證明,我不知道NuttX的任8051任何真正成功的端口,(2)8051,具有其硬件堆棧,強制限制和並發症的其它架構和使經濟增長NuttX和發展更為複雜。
  • 在ZiLOG的ZNeo板:
  • 的configs / 16Z:支持這款主板已經從NuttX源代碼樹中刪除(但仍然可以在雜項/已過時目錄中找到)。這個端口是沒有準備好使用,但可能會返回到NuttX樹在未來的某個時候。
  • 愛特梅爾SAM3 / 4板:
  • SAM4E-EK:添加(1)全功能ILI9341型LCD驅動器和(2)全功能配置NxWM
  • 的ARMv7-A:
  • 地址環境:支持添加使用Cortex-A MMU應用程序地址的環境。實施NuttX地址環境的支持標準化平台特定的接口。
  • 緩存操作:實行規範化,平台特定的緩存操作。這些是從ELF加載器,以刷新D-cache和無效的I-緩存後ELF模塊已經被加載到內​​存中調用。這種變化,ELF模塊SAMA5 /的Cortex-A平台上正常工作。
  • 內核構建:(1)添加系統調用門的實現。 (2)添加也可以單獨構建的用戶程序鏈接CRT0啟動文件。 (3)增加支持的內核構建交付使用模式的信號。 (4)添加邏輯時,每次啟動用戶進程初始化每個進程的用戶堆。 (5)的ARMv7-A的異常處理需要一點點的工作方式不同,如果我們支持用戶模式進程。這是因為,R13和R14是用戶和SVC模式之間分頁不同。
  • 在共享內存支持:(1)添加必要的邏輯來處理共享內存的上下文切換重映射。 (2)擴展的虛擬/物理地​​址的轉換,包括在共享內存地址。 (3)加入實施特定於平台的共享內存的支持。
  • 愛特梅爾SAMA5D驅動程序:
  • 網絡讀寫控制:實現所有網絡讀寫控制,包括新的ioctl設置PHY事件通知
  • 地址轉換:在內核建立與地址的環境,需要邏輯映射用戶虛擬地址到物理地址,反之亦然
  • 愛特梅爾SAMA5D板:
  • SAMA5D3 Xplained,SAMA5D3-EK,並SAMA5D4-EK:將現有的董事會具體PHY接口中斷使用新定義的標準接口
  • SAMA5D4-EK:添加配置用於測試內核構建的配置。有配置,無論是從SD卡或者和內存ROMFS文件系統引導。
  • SAMA5D4-EK:添加文檔/支持版本E.板
  • 意法半導體STM32驅動程序:
  • 以太網:修改以支持更改網絡簽名IOCTL變化。還添加了新的ioctl設置PHY事件通知的支持。
  • 意法半導體STM32板:
  • STM32F4Discovery與STM32F4DIS-BB:添加網絡啟用NSH配置為STM32F4Discovery板安裝STM32F4DIS-BB基板。包括對STM32F4DIS-BB基板microSD卡插槽的支持。
  • TI全憑司機:
  • TI CC3200:添加支持TI的CC3200。吉姆尤因。
  • TI全憑靜脈麻醉板:
  • 在TI CC3200的Launchpad:添加支持TI的CC3200啟動板。吉姆尤因。
  • C庫:
  • 在民意調查():重新實現輪詢()使用sem_timedwait延遲()
  • 在配置/編譯系統:
  • 導出目標:在內核或保護構建,(1)只有用戶庫應出口,(2)不要複製內部的頭文件或構建腳本,如果這是一個內核或保護的身材,和(3)需求捆綁了用戶C啟動文件(信息crt0),而不是內核頭部對象內核和保護的基礎之上。
  • 程序CFLAGS:添加邏輯,這將允許我們建立用戶庫具有不同的CFLAGS比內核代碼。這是必要的,因為我們建立ELF代碼,以防止SHN_COMMON重定位時需要的-fno-常見的選擇。
  • 應用程序:
  • NSH:擴展NSH網絡初始化邏輯。現在有將創建一個網絡監視線程將監視鏈路的狀態的選項。當鏈路發生故障,代碼會嘗試正常放以太網驅動程序在關閉狀態;當鏈路回來,代碼將嘗試將網絡備份。
  • ELF例:精靈測試/例如一直延續所以個人ELF測試程序可以對系統調用鏈接庫(如果可用),或者對C庫,以消除或減少需要符號表
  • NxTerm:更改NxConsole所有出現的NxTerm
  • MTDRWB例如:添加一個例子來測試MTD R / W緩衝
  • 在OS測試例:添加sem_timedwait的一個微不足道的測試()

  • 工具:









































  • 工具:




  • 工具:
























































































  • 工具:


























  • 錯誤修正:






































































































類似的軟件

意見 NuttX

評論沒有發現
添加評論
打開圖片!