NuttX

Phần mềm chụp màn hình:
NuttX
Các chi tiết về phần mềm:
Phiên bản: 7.9 Cập nhật
Ngày tải lên: 10 May 15
Nhà phát triển: Gregory Nutt
Giấy phép: Miễn phí
Phổ biến: 53

Rating: 4.0/5 (Total Votes: 1)

NuttX là một mã nguồn mở, thời gian thực hệ điều hành nhúng định và báo miễn phí (RTOS), được thiết kế từ sự bù đắp để có thể sử dụng trong nhúng sâu sắc, môi trường tài nguyên hạn chế. Nó có một dấu chân nhỏ là có thể sử dụng trong các môi trường vi điều khiển, và nó & rsquo; s hoàn toàn khả năng mở rộng từ nhỏ (8-bit) để vừa nhúng (32-bit) hệ thống.
Nó cũng nhằm mục đích là hoàn toàn tuân thủ các tiêu chuẩn, có đầy đủ thời gian thực, và được hoàn toàn mở. NuttX có một bộ tính năng phong phú OS, một thiết kế kiểu mô-đun, nó là rất cao khả năng mở rộng và cấu hình, cũng như các tiêu chuẩn tuân thủ. Nó được phân phối với một giấy phép BSD không hạn chế. Nó thường được gọi là các nhà phát triển của nó như là "Tiny Linux." Các đặc điểm tính năng glanceKey bao gồm quản lý cốt lõi nhiệm vụ, giao diện ổ cắm BSD, cấp phát bộ nhớ (bộ nhớ chia sẻ, phân bổ bộ nhớ heap tiêu chuẩn, xây dựng bảo vệ với MPU, phẳng nhúng build, mỗi quá trình đống, cấp phát hạt và tự động kích thước), cấu hình bộ nhớ, porting dẫn, đầy đủ preemptible, hoạt động tickless, theo yêu cầu phân trang và hệ thống khai thác gỗ.
Ngoài ra, dự án đi kèm với phần mở rộng để quản lý pre-emption, mỗi thread, được xây dựng trong các phép đo tải CPU, tài liệu toàn diện, nhiệm vụ tùy chọn có chứa môi trường địa chỉ, ANSI giống và POSIX giống như điều khiển công việc, đồng hồ, pthreads, môi trường biến, tín hiệu, hàng đợi tin nhắn tên, giờ, hệ thống tập tin và Cột đếm.
Trong số các tính năng khác, chúng ta có thể đề cập đến lịch trình round-robin, FIFO, hỗ trợ cho các thừa kế ưu tiên, hỗ trợ cho kiến ​​trúc SoC, hỗ trợ cho các kiến ​​trúc board, hỗ trợ cho các kiến ​​trúc vi xử lý mới, bộ định thời watchdog, VxWorks giống như quản lý công việc, I / O và chuyển hướng truyền & ldquo; kiểm soát thiết bị đầu cuối & rdquo;. Hỗ trợ platformsNuttX hỗ trợ một loạt các nền tảng phần cứng, trong đó chúng ta có thể kể đến rất nhiều bộ vi xử lý ARM, bao gồm ARM Cortex-M3, ARM926EJS, ARM7TDMI, ARM Cortex-M4, ARM Cortex-M0, ARM920T và ARM Cortex-A5, cũng như các Atmel 8-bit AVR, Freescale M68HCS12, nền tảng AVR32 Atmel AVR.
Ngoài ra, nó cũng hỗ trợ các nền tảng Intel khác nhau, chẳng hạn như vi mạch PIC32MX (MIPS), 80c52 và 80 & lần; 86, nền tảng Zilog, bao gồm Zilog Z80, Zilog Z16F, Zilog Z8Encore! và Zilog eZ80 Acclaim !, và M16C / 26 nền tảng Renesas / Hitachi SuperH và Renesas

là gì mới trong phiên bản này:.

  • Các tính năng: Các tính năng khác mới và chức năng mở rộng:
  • OS Core:
  • Watchdog Timer Allocation: (1) Nếu chúng ta chạy ra khỏi được cấp phát trước thời watchdog, logic bây giờ sẽ phân bổ thêm giờ từ đống. Một dự trữ của cơ quan giám sát giờ trước khi được phân bổ được duy trì để sẽ luôn có tính giờ có sẵn cho xử lý ngắt. (2) Hỗ trợ các tĩnh được phân bổ watchdog timer
  • Địa chỉ Môi trường Hỗ trợ: (2) New API tích hợp vào hệ điều hành tất cả các bối cảnh nền tảng cụ chuyển đổi logic (up_block_task (), up_unblock_task (), _exit (), và những người khác)
  • .
  • Xây dựng hạt nhân Hỗ trợ: (1) Các MPU dựa & quot; hạt nhân xây dựng & quot; đổi tên thành một xây dựng bảo vệ (CONFIG_BUILD_PROTECTED); thêm hỗ trợ cho một MMU mới dựa trên & quot; hạt nhân xây dựng & quot; (CONFIG_BUILD_KERNEL), (2) Các hệ thống thư viện gọi bây giờ có thể được xây dựng với CONFIG_NUTTX_KERNEL. New * lựa chọn:. CONFIG_LIB_SYSCALL
  • System Startup: Thêm tùy chọn cấu hình để khởi động hệ thống từ một chương trình trên một hệ thống tập tin (so với một địa chỉ trong bộ nhớ)
  • .
  • Startup Parameter Passing: Có sử dụng được hai cách để truyền tham số cho nhiệm vụ mới, tùy thuộc vào cấu hình: Hoặc là (1) argv [] như tạo ra như là một mảng với mỗi chuỗi strdup'ed. Hoặc (2) argv [] array và chuỗi được tạo ra trên stack trước khi nhiệm vụ mới được bắt đầu. Bây giờ, chỉ có một cách, cách (2). Way (1) có thể là hơi nhỏ gọn hơn, nhưng điều này là không có giá trị thực sự phức tạp của hai cách khác nhau để làm điều tương tự.
  • Board Khởi tạo: Thêm khả năng để thực hiện khởi tạo ban đầu trên một sợi nhân viên riêng biệt. Điều này là cần thiết bởi vì có rất nhiều trường hợp khởi logic không thể thực hiện trên các start-up / thread IDLE. Đó là bởi vì chặn hoặc chờ đợi là không được phép trên thread IDLE.
  • Quản lý bộ nhớ:
  • Granule cấp phát: (1) Thêm một chức năng mới để dành vùng un-allocatable trong đống hạt. (2) Thêm giao diện để hỗ trợ un-khởi tạo một cấp hạt.
  • Trang cấp phát: Thêm một cấp phát trang vật lý đơn giản dựa trên các hạt cấp phát NuttX hiện có. Tôi không chắc chắn nếu các cấp phát hạt là đủ xác định để sử dụng tầm xa, nhưng nó được có được một cấp phát trang tại chỗ để kiểm tra rất nhanh chóng.
  • Remove CONFIG_MM_MULTIHEAP: hoạt động không multiheap không còn được hỗ trợ
  • .
  • sbrk ():.
  • sbrk () hiện nay được hỗ trợ trong hạt nhân xây dựng để cho phép tự động kích thước, mỗi quá trình đống
  • Per-Process Heaps: Không gian tại đầu của quá trình không gian dữ liệu hiện được dành riêng cho các cấu trúc quản lý người dùng heap. Trong hạt nhân xây dựng chế độ, các cấu trúc heap được chia sẻ giữa các hạt nhân và sử dụng mã để phân bổ dữ liệu người dùng cụ thể.
  • User Management Heap: Khi một lối chủ đề ưu tiên, chúng ta phải sử dụng bộ cấp phát hạt nhân để giải phóng bộ nhớ; khi một lối ra đề không có đặc quyền, chúng tôi không cần phải làm bất cứ điều gì ... bộ nhớ heap sẽ được làm sạch lên khi môi trường địa chỉ bị rách xuống.
  • Inter-Process Memory chung Hỗ trợ: (1) Thêm thực hiện và tài liệu cho shmget (), shmctl (), shmat (), và shmdt (). (2) Thêm hệ thống hệ thống gọi để hỗ trợ các cổng sử dụng cuộc gọi đến các giao diện bộ nhớ chia sẻ. (3) Thêm định nghĩa giao diện nền tảng cụ thể cần thiết để hỗ trợ tính năng chia sẻ bộ nhớ.
  • Virtual trang cấp phát: Thêm hỗ trợ cho một cấp phát trang ảo cho mỗi quá trình. Đây là một thành viên mới của cấu trúc task_group_s. Việc cấp phát phải được khởi tạo khi một quá trình người dùng mới bắt đầu và uninitialize khi các nhóm quá trình cuối cùng đã bị phá hủy. Nó được sử dụng bởi shmat () và shmdt () để chọn các địa chỉ ảo trên đó để lập bản đồ bộ nhớ vật lý chung.
  • Hệ thống tập tin / Khối Drivers / MTD:
  • FS SMART: SMART FS và SMART FS procfs cập nhật từ Ken Pettit
  • .
  • MTD:. Lớp MTD Read-ahead / Viết đệm xuất hiện hiện chức năng
  • Các định dạng nhị phân:
  • Per-Process Heap:. Thêm logic để khởi tạo các người dùng heap cho mỗi quá trình khi mỗi quá trình sử dụng được bắt đầu
  • Đồ họa:
  • NxTerm: Thay đổi tất cả các lần xuất hiện của NxConsole để NxTerm
  • .
  • Networking:
  • PHY Ngắt lời: (1) Chuẩn hóa một giao diện tập tin đính kèm PHY ngắt. (2) Thêm hỗ trợ cho một ioctl mà có thể được sử dụng để thông báo cho một ứng dụng khi có sự thay đổi trong trạng thái mạng báo hiệu bởi một PHY ngắt.
  • Cải thiện Gửi Logic: Trong quá khứ, các gói tin đầu tiên gửi đến một peer mạng mới sẽ thất bại; sẽ không có mục nhập trong bảng ARP cho các peer và do đó, một yêu cầu ARP có thể thay thế cho rằng gói đầu tiên. Bây giờ là một lựa chọn nếu CONFIG_NET_ARP_SEND = y, tất cả gửi logic sẽ (1) kiểm tra xem địa chỉ MAC peer là trong bảng ARP, và nếu không, (2) gửi yêu cầu ARP định kỳ để có được các bản đồ và (3) chờ đợi phản ứng ARP. Sau đó (4) khi các phản ứng ARP nhận được thì gửi logic thực tế sẽ được bắt đầu. Như vậy có thể có một sự chậm trễ với các gói tin đầu tiên được gửi tới một đồng đẳng mới, nhưng các gói tin không nên bị mất
  • Máy chủ mô phỏng:
  • SPI FLASH Driver:. Mô phỏng SPI FLASH lái xe cho các mục tiêu sim từ Ken Pettit
  • Intel x86:
  • Default Host: Các máy chủ mặc định là doanh nghiệp x86_64 và các tùy chọn -m32 sẽ được chọn tự động cho mô phỏng xây dựng
  • .
  • Intel 8051 Family:
  • 8051 Removed: Loại bỏ tất cả các hỗ trợ cho kiến ​​trúc gia đình 8051 từ nguồn cây NuttX. Các mã lỗi thời cùng với các bản vá loại bỏ bây giờ có thể được tìm thấy tại misc / lỗi thời /. Mã này đã được gỡ bỏ bởi vì (1) mặc dù một số chức năng đã được chứng minh, tôi không biết về bất kỳ cảng thực sự thành công của bất kỳ NuttX 8051, và (2) 8051, với stack phần cứng của nó, lực lượng hạn chế và biến chứng đến các kiến ​​trúc khác và làm cho sự tăng trưởng và phát triển của NuttX phức tạp hơn.
  • Zilog Ban ZNeo:
  • configs / 16z: Hỗ trợ cho các hội đồng này đã được gỡ bỏ từ nguồn cây NuttX (nhưng vẫn có thể được tìm thấy trong misc / thư mục lỗi thời). Cổng này là chưa sẵn sàng cho việc sử dụng nhưng có thể quay trở lại cây NuttX tại một số điểm trong tương lai.
  • Atmel SAM3 / 4 các diễn đàn:
  • SAM4E-EK:.
  • Add (1) một trình điều khiển LCD ILI9341 dựa trên đầy đủ chức năng và (2) một cấu hình NxWM đầy đủ chức năng
  • ARMv7-A:
  • Môi Trường Địa chỉ: Thêm hỗ trợ cho môi trường địa chỉ ứng dụng bằng cách sử dụng Cortex-A MMU. Thực hiện các giao diện nền tảng cụ thể tiêu chuẩn hóa của NuttX hỗ trợ môi trường địa chỉ.
  • Operations Cache: Thực hiện tiêu chuẩn hóa, hoạt động bộ nhớ cache nền tảng cụ thể. Chúng được gọi là từ loader ELF để xả D-cache và vô hiệu I-bộ nhớ cache sau một module ELF đã được nạp vào bộ nhớ. Với sự thay đổi này, các mô-đun ELF làm việc một cách chính xác trên SAMA5 / Cortex-A nền tảng.
  • Kernel tích xây dựng: (1) Thêm triển khai các hệ thống cửa khẩu gọi. (2) Thêm CRT0 tập tin khởi động có thể liên kết với các chương trình sử dụng được xây dựng một cách riêng biệt. (3) Thêm hỗ trợ cho việc phân phối các tín hiệu sử dụng chế độ trong hạt nhân xây dựng. (4) Thêm logic để khởi tạo các người dùng heap cho mỗi quá trình khi mỗi quá trình sử dụng được bắt đầu. (5) ARMv7-A xử lý ngoại lệ cần phải làm việc một chút khác nhau nếu chúng tôi hỗ trợ các quy trình chế độ người dùng. Điều này là do R13 và R14 được phân trang khác nhau giữa người sử dụng và chế độ SVC.
  • Chia sẻ bộ nhớ hỗ trợ: (1) Thêm logic cần thiết để xử lý ánh xạ lại bộ nhớ chia sẻ trên công tắc ngữ cảnh. (2) Mở rộng ảo / chuyển đổi địa chỉ vật lý bao gồm các địa chỉ trong bộ nhớ chia sẻ. (3) Thêm thực hiện các nền tảng cụ thể hỗ trợ bộ nhớ chia sẻ.
  • Atmel SAMA5D Drivers:
  • Network IOCTLs:. Thực hiện tất cả IOCTLs mạng, bao gồm các ioctl mới để thông báo sự kiện thiết lập PHY
  • Chuyển đổi Địa chỉ:.
  • Trong hạt nhân xây dựng với môi trường địa chỉ, cần logic để lập bản đồ sử dụng các địa chỉ ảo sang địa chỉ vật lý, và ngược lại
  • Atmel Ban SAMA5D:
  • SAMA5D3 Xplained, SAMA5D3-EK, và SAMA5D4-EK: Chuyển đổi bảng PHY cụ ngắt giao diện hiện có để sử dụng vừa được định nghĩa giao diện chuẩn
  • .
  • SAMA5D4-EK: Thêm một cấu hình để kiểm tra cấu hình hạt nhân xây dựng. Có cấu hình để khởi động hoặc từ thẻ SD hoặc từ và trong bộ nhớ hệ thống tập tin ROMFS.
  • SAMA5D4-EK: Thêm tài liệu hướng dẫn / hỗ trợ cho Rev E. bảng
  • .
  • STMicro STM32 Drivers:
  • Ethernet: Được thay đổi để hỗ trợ các thay đổi đối với các mạng thay đổi chữ ký ioctl. Cũng hỗ trợ thêm cho ioctl mới để thông báo sự kiện thiết lập PHY.
  • STMicro Ban STM32:
  • STM32F4Discovery với STM32F4DIS-BB: Thêm một mạng cấu hình cho phép NSH cho hội đồng quản trị với Ban cơ sở STM32F4DIS-BB cài đặt STM32F4Discovery. Bao gồm hỗ trợ cho các khe cắm thẻ microSD trên bảng cơ sở STM32F4DIS-BB.
  • TI Tiva Drivers:
  • TI CC3200: Thêm hỗ trợ cho các CC3200 TI. Từ Jim Ewing.
  • TI Ban Tiva:
  • TI CC3200 Launchpad: Thêm hỗ trợ cho các TI CC3200 Launchpad. Từ Jim Ewing.
  • C Thư viện:
  • thăm dò ý kiến ​​():. Re-thực hiện cuộc thăm dò () chậm trễ sử dụng sem_timedwait ()
  • Configuration / Xây dựng hệ thống:
  • Export Target: Trong hạt nhân hoặc bảo vệ xây dựng, (1) chỉ có các thư viện sử dụng nên được xuất khẩu, (2) không sao chép tập tin tiêu đề nội bộ hoặc xây dựng các kịch bản nếu điều này là một hạt nhân hoặc bảo vệ xây dựng, và (3) nhu cầu bó lên các tập tin người dùng C khởi động (crt0), không phải là đối tượng đầu hạt nhân cho các hạt nhân và bảo vệ xây dựng.
  • Program CFLAGS: Thêm logic mà sẽ cho phép chúng tôi để xây dựng thư viện người dùng với CFLAGS khác với mã hạt nhân. Điều này là cần thiết bởi vì chúng ta cần lựa chọn -fno-chung khi xây dựng mã ELF để ngăn chặn di dời SHN_COMMON.
  • Ứng dụng:
  • NSH: Mở rộng mạng lưới NSH khởi logic. Hiện bây giờ là một lựa chọn mà sẽ tạo ra một chủ đề màn hình mạng mà sẽ theo dõi trạng thái của liên kết. Khi liên kết đi xuống, các mã sẽ cố gắng một cách duyên dáng đặt các trình điều khiển Ethernet trong tình trạng xuống; Khi liên kết trở lại, các mã sẽ cố gắng để mang lại mạng lại lên.
  • ELF. Ví dụ: Các thử nghiệm ELF / ví dụ đã được mở rộng để các chương trình thử nghiệm ELF cá nhân có thể liên kết với các thư viện syscall (nếu có) hoặc chống lại các thư viện C để loại bỏ hoặc giảm thiểu sự cần thiết cho các bảng biểu tượng
  • NxTerm: Thay đổi tất cả các lần xuất hiện của NxConsole để NxTerm
  • .
  • MTDRWB. Ví dụ: Thêm một ví dụ để kiểm tra MTD R / W đệm
  • Kiểm tra hệ điều hành Ví dụ: Thêm một thử nghiệm nhỏ của sem_timedwait ()
  • .
  • Cấu hình ứng dụng / Xây dựng hệ thống:
  • Import mục tiêu: (1) Thêm logic mà sẽ cho phép các ứng dụng xây dựng đối với một gói xuất khẩu NuttX (so với nuttx / cây nguồn). (2) Thêm file config để xuất khẩu trọn gói. (3) Tạo apps / nhập khẩu. Tạo các ứng dụng / nhập khẩu / Make.defs mà làm những việc như xác định CFLAGS; ELF xây dựng yêu cầu -fno-phổ biến ở CFLAGS. Sao chép một số logic cơ bản từ nuttx / công cụ / Config.mk để apps / nhập khẩu / Make.defs. (4) Thêm apps / nhập khẩu / scripts / gnu-elf.ld GCC linker script cho nhập khẩu ELF xây dựng.
  • Tất cả Makefiles: (1) Thêm một mục tiêu cài đặt cho tất cả các makefiles. Đối với việc nhập khẩu xây dựng, các Makefile cấp cao doanh nghiệp cần thực hiện hai đường chuyền: (1) xây dựng libapp.a, sau đó (2) cài đặt các chương trình ứng dụng vào / bin. (2) Thêm cài đặt chương trình cho CONFIG_BUILD_KERNEL trong tất cả Makefiles rằng xây dựng một chính (). (3) Đối với hạt nhân xây dựng, các đối tượng tập tin có chứa main () không thể đi vào thư viện vì va chạm tên. Các đối tượng tập tin phải được xử lý như một trường hợp đặc biệt trong mỗi Makefile.
  • All Programs Built-In: Với kernel build (CONFIG_BUILD_KERNEL), nhập điểm cho tất cả các nhiệm vụ là chính (), không phải một số xyz_main ()
  • .
  • NSH: Một số lệnh phải được vô hiệu hóa trong các hạt nhân xây dựng vì chúng phụ thuộc vào giao diện mà không có sẵn bên ngoài của hạt nhân:. Dd, df, losetup, mkfatfs, mkdr, và ps
  • apps / công cụ /: (1) Thêm mkimport.sh nổ tung một gói nhập khẩu NuttX và cài đặt trong ứng dụng / nhập khẩu. (2) Thêm script mkromfsimg.sh để tạo ra một hình ảnh BOOT ROMFS hệ thống tập tin.
  • ELF và NxFLAT Ví dụ:. Không xây dựng các trường hợp thử nghiệm có sử dụng task_create () nếu có một môi trường địa chỉ
  • Công cụ:
  • refresh.sh:. Thêm một công cụ để cấu hình làm mới dễ dàng hơn khi bạn muốn làm rất nhiều trong số họ
  • mksyscall.c: Xây dựng syscalls mà không cần tập tin tiêu đề
  • .
  • mkexport.sh:. Add file config để xuất khẩu gói
  • apps / công cụ: Xem ở trên để mới ứng dụng / công cụ kịch bản
  • .
  • Những nỗ lực In Progress. Sau đây là những tính năng được thực hiện một phần nhưng hiện nay trong phiên bản này. Họ không có khả năng sớm được hoàn thành.
  • Processes: Rất nhiều việc trong phiên bản này là tập trung vào việc thực hiện các quy trình sử dụng Unix-phong NuttX. Có nhiều việc phải làm, tuy nhiên. Các lộ trình đầy đủ và tình trạng có sẵn tại: http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
  • XMega: Có một số mảnh vỡ tại chỗ cho một cổng XMega. Cổng đó chưa thực sự bắt đầu, tuy nhiên.
  • Galileo: Tương tự như vậy, có rất nhiều mảnh vỡ tại chỗ cho một cổng Intel Galileo. Các cổng không được bắt đầu một cách nghiêm túc hoặc.
  • Sửa lỗi. Chỉ có các sửa lỗi quan trọng nhất được liệt kê ở đây (xem ChangeLog danh sách đầy đủ của các sửa lỗi và bổ sung, thông tin Sửa lỗi chi tiết hơn):
  • OS Core:
  • Kernel xây dựng sửa chữa: (1) IDLE thiết lập TCB cần phải chỉ ra rằng các chủ đề IDLE là một đặc quyền, chủ đề hạt nhân. (2) Không xây dựng task_create () hoặc task_spawn () giao diện nếu có một môi trường địa chỉ. (3) posix_spawn () thread kernel proxy nên có một chủ đề hạt nhân, không phải là một nhiệm vụ người dùng.
  • Một số giao diện pthread: Thêm const lớp lưu trữ để phthread thông số. Từ Freddie Chopin.
  • sched / đồng hồ: Hủy bỏ dấu tích g_tickbias; cần, thay vào đó, để áp dụng thời gian thiên vị để g_basetime để cung cấp thời gian hệ thống chính xác.
  • Hệ thống kêu gọi: (1) Một số lỗi chính tả cố định; hội nhập hiệu chỉnh của exevc (), gọi điện execvl (), posix_spawn (), và posix_spawnp hệ thống (). (2) Nếu chúng ta được cấu hình để sử dụng một ngăn xếp nhân trong khi xử lý syscall, sau đó chúng ta cần phải chuyển trở lại ngăn xếp sử dụng để cung cấp một tín hiệu.
  • Hệ thống tập tin / Khối Drivers / MTD:
  • procfs: Sửa chữa một số vỡ procf giới thiệu bởi tổ chức lại một số cấu trúc dữ liệu không reorganizable. Từ Ken Pettit.
  • AT45: Trong at45db_bwrite (), bộ đệm là không tăng khi viết nhiều hơn 1 trang. Sourceforge lỗi # 34.
  • Các định dạng nhị phân:
  • di dời ELF: Một số loại di dời không có một biểu tượng có tên là liên kết với chúng. Các thiết kế này không chiếm trường hợp đó.
  • ELF Loader:. Sửa lỗi Critical .. BSS đã không được xóa
  • Quản lý bộ nhớ:
  • Granule cấp phát: khởi tạo cấp phát Granule sử dụng sai bộ cấp phát để đặt ra một bộ nhớ hạt nhân
  • .
  • Nhóm Privileged: Thêm một lá cờ để cấu trúc nhóm: Nếu nhóm được tạo ra bởi một sợi hạt nhân, sau đó tất cả các nguồn lực trong nhóm phải có đặc quyền
  • .
  • Hỗ trợ Cryptogrphic:
  • crypto / cryptodev.c: đoạn đường đảo ngược trong bao gồm các đường dẫn tập tin. Ghi nhận của Brennan Ashton.
  • Drivers thường:
  • Common CAN trên nửa: Trong can_txdone, bồi bàn trên semaphore nên được thông báo bất chấp giá trị trở lại của can_xmit. Đầu tiên nó trả -EIO nếu không có gói dữ liệu mới, và thứ hai các thông tin của những người phục vụ là về các gói tin chuyển nhượng cuối cùng. Từ Daniel Lazlo Sitzer.
  • ARM:
  • Hệ thống kêu gọi: Sửa chữa một lỗi đánh máy trong hệ thống gọi khi lấy tham số từ stack: regs [REG_PC] 4 là địa chỉ, không regs [REG_PC + 4]
  • .
  • STMicro STM32 Drivers:
  • STM32 F401 UART: hỗ trợ đúng cho USART6 trên chip này. Từ Freddie Chopin.
  • STM32 FLASH sửa lỗi: sử dụng size_t thay vì uint16_t, làm cho giao diện chung chung hơn. Từ Freddie Chopin.
  • STM32 UART:.
  • Sửa chữa cho UART7 và UART8 trên đồng hồ STM32 phép từ Aton
  • CAN: Vào cuối của trình xử lý ngắt, ngắt đã bị vô hiệu hoá, nếu tất cả các gói dữ liệu đã được chuyển nhượng khi xử lý ngắt được gọi. Đây là vấn đề, bởi vì xử lý ngắt cuộc gọi can_txdone () của nửa trên có thể enqueue gói mới để gửi. Loại bỏ khối hoàn toàn, vì can_txdone () gọi can_xmit () mà vô hiệu hóa ngắt nếu không có gói dữ liệu mới để gửi. Từ Daniel Lazlo Sitzer.
  • CAN:. Túc STM32 CAN chỉnh được đề xuất bởi Max Holtzberg
  • STMicro Ban ST32:
  • configs / mikroe-stm32f4: Sửa chữa một vài lỗi biên dịch và chỉnh sửa nhỏ tới nguồn cấu hình mikroe-stm32f4. Từ Ken Pettit.
  • ARM9 / ARMv7-A:
  • Hệ thống kêu gọi: Fix ARM7 / 9 và Cortex-A syscalls: Đối với các chủ đề trong chế độ SVC, các hướng dẫn SVC clobbers R14. Điều này phải được thực hiện trong khoản lắp ráp nội tuyến.
  • Task Setup: Tất cả công việc, ngay cả nhiệm vụ chế độ người dùng, phải bắt đầu trong chế độ giám sát cho đến khi họ nhận được quá khứ trampoline start-up
  • .
  • ARMv7-A: Sửa up_fullcontextrestore () cho CONFIG_BUILD_KERNEL. Nó đã thay đổi CPSR trong khi trong kernel. Điều đó sẽ sụp đổ nếu CPSR mới là chế độ người dùng trong khi thực hiện trong không gian hạt nhân. Cố định bằng cách thêm vào một hệ thống gọi SYS_context_restore. Có một thay thế, sửa đổi đơn giản để up_fullcontextrestore () có thể đã được thực hiện: Đó có thể là có thể sử dụng các SPSR thay vì CPRSR và sau đó làm một sự trở lại ngoại lệ từ up_fullcontextrestore (). Điều đó sẽ có hiệu quả hơn, nhưng tôi không bao giờ thử nó.
  • Atmel SAM3 / 4 các diễn đàn:
  • SAM3X / Arduino Do: Sửa lỗi chính tả trong sam3x_periphclks.h; thêm định nghĩa SCLK để board.h file header. Từ Fabien Comte.
  • SAM3 RTT: Chỉ SAM4 gia đình có RTTDIS bit trong thanh ghi MR. SourceForge lỗi # 33 từ Fabien Comte.
  • C Thư viện:
  • sscanf (): NuttX libc cố gắng đoán có bao nhiêu ký tự để phân tích, chiết xuất chúng vào một bộ đệm, sau đó chạy strtol () trên đệm đó. Đoán đó là thường sai. Một cách tiếp cận tốt hơn sẽ được gọi strtol () trực tiếp trên các dữ liệu đầu vào, sử dụng giá trị trả về endptr để xác định có bao nhiêu ký tự để bỏ qua sau khi phân tích. Từ Kosma Moczek.
  • Math Library:.
  • Sửa chữa atan2 triển khai từ Denis Arnst
  • Floating Point Output: Thay đổi để lib_dtoa () để sửa lỗi chính xác từ zero dấu. Từ Bob Doiron.
  • Ứng dụng:
  • lệnh Fix NSH PS:. Nếu không có đối số, nó có thể in rác cho danh sách đối số
  • Configuration / Xây dựng hệ thống:
  • Null Ví dụ: Cần phải bao gồm config.h nó tự biết nếu điều này là hoặc không phải là một hạt nhân xây dựng. Vấn đề này vẫn còn tồn tại trong một số tập tin khác có thể cần phải xác định chính ().

là gì mới trong phiên bản 7.8:

  • Các tính năng: Các tính năng mới bổ sung và các chức năng mở rộng:
  • OS Core:
  • Watchdog Timer Allocation: (1) Nếu chúng ta chạy ra khỏi được cấp phát trước thời watchdog, logic bây giờ sẽ phân bổ thêm giờ từ đống. Một dự trữ của cơ quan giám sát giờ trước khi được phân bổ được duy trì để sẽ luôn có tính giờ có sẵn cho xử lý ngắt. (2) Hỗ trợ các tĩnh được phân bổ watchdog timer
  • Địa chỉ Môi trường Hỗ trợ: (2) New API tích hợp vào hệ điều hành tất cả các bối cảnh nền tảng cụ chuyển đổi logic (up_block_task (), up_unblock_task (), _exit (), và những người khác)
  • .
  • Xây dựng hạt nhân Hỗ trợ: (1) Các MPU dựa & quot; hạt nhân xây dựng & quot; đổi tên thành một xây dựng bảo vệ (CONFIG_BUILD_PROTECTED); thêm hỗ trợ cho một MMU mới dựa trên & quot; hạt nhân xây dựng & quot; (CONFIG_BUILD_KERNEL), (2) Các hệ thống thư viện gọi bây giờ có thể được xây dựng với CONFIG_NUTTX_KERNEL. New * lựa chọn:. CONFIG_LIB_SYSCALL
  • System Startup: Thêm tùy chọn cấu hình để khởi động hệ thống từ một chương trình trên một hệ thống tập tin (so với một địa chỉ trong bộ nhớ)
  • .
  • Startup Parameter Passing: Có sử dụng được hai cách để truyền tham số cho nhiệm vụ mới, tùy thuộc vào cấu hình: Hoặc là (1) argv [] như tạo ra như là một mảng với mỗi chuỗi strdup'ed. Hoặc (2) argv [] array và chuỗi được tạo ra trên stack trước khi nhiệm vụ mới được bắt đầu. Bây giờ, chỉ có một cách, cách (2). Way (1) có thể là hơi nhỏ gọn hơn, nhưng điều này là không có giá trị thực sự phức tạp của hai cách khác nhau để làm điều tương tự.
  • Board Khởi tạo: Thêm khả năng để thực hiện khởi tạo ban đầu trên một sợi nhân viên riêng biệt. Điều này là cần thiết bởi vì có rất nhiều trường hợp khởi logic không thể thực hiện trên các start-up / thread IDLE. Đó là bởi vì chặn hoặc chờ đợi là không được phép trên thread IDLE.
  • Quản lý bộ nhớ:
  • Granule cấp phát: (1) Thêm một chức năng mới để dành vùng un-allocatable trong đống hạt. (2) Thêm giao diện để hỗ trợ un-khởi tạo một cấp hạt.
  • Trang cấp phát: Thêm một cấp phát trang vật lý đơn giản dựa trên các hạt cấp phát NuttX hiện có. Tôi không chắc chắn nếu các cấp phát hạt là đủ xác định để sử dụng tầm xa, nhưng nó được có được một cấp phát trang tại chỗ để kiểm tra rất nhanh chóng.
  • Remove CONFIG_MM_MULTIHEAP: hoạt động không multiheap không còn được hỗ trợ
  • .
  • sbrk ():.
  • sbrk () hiện nay được hỗ trợ trong hạt nhân xây dựng để cho phép tự động kích thước, mỗi quá trình đống
  • Per-Process Heaps: Không gian tại đầu của quá trình không gian dữ liệu hiện được dành riêng cho các cấu trúc quản lý người dùng heap. Trong hạt nhân xây dựng chế độ, các cấu trúc heap được chia sẻ giữa các hạt nhân và sử dụng mã để phân bổ dữ liệu người dùng cụ thể.
  • User Management Heap: Khi một lối chủ đề ưu tiên, chúng ta phải sử dụng bộ cấp phát hạt nhân để giải phóng bộ nhớ; khi một lối ra đề không có đặc quyền, chúng tôi không cần phải làm bất cứ điều gì ... bộ nhớ heap sẽ được làm sạch lên khi môi trường địa chỉ bị rách xuống.
  • Inter-Process Memory chung Hỗ trợ: (1) Thêm thực hiện và tài liệu cho shmget (), shmctl (), shmat (), và shmdt (). (2) Thêm hệ thống hệ thống gọi để hỗ trợ các cổng sử dụng cuộc gọi đến các giao diện bộ nhớ chia sẻ. (3) Thêm định nghĩa giao diện nền tảng cụ thể cần thiết để hỗ trợ tính năng chia sẻ bộ nhớ.
  • Virtual trang cấp phát: Thêm hỗ trợ cho một cấp phát trang ảo cho mỗi quá trình. Đây là một thành viên mới của cấu trúc task_group_s. Việc cấp phát phải được khởi tạo khi một quá trình người dùng mới bắt đầu và uninitialize khi các nhóm quá trình cuối cùng đã bị phá hủy. Nó được sử dụng bởi shmat () và shmdt () để chọn các địa chỉ ảo trên đó để lập bản đồ bộ nhớ vật lý chung.
  • Hệ thống tập tin / Khối Drivers / MTD:
  • FS SMART: SMART FS và SMART FS procfs cập nhật từ Ken Pettit
  • .
  • MTD:. Lớp MTD Read-ahead / Viết đệm xuất hiện hiện chức năng
  • Các định dạng nhị phân:
  • Per-Process Heap:. Thêm logic để khởi tạo các người dùng heap cho mỗi quá trình khi mỗi quá trình sử dụng được bắt đầu
  • Đồ họa:
  • NxTerm: Thay đổi tất cả các lần xuất hiện của NxConsole để NxTerm
  • .
  • Networking:
  • PHY Ngắt lời: (1) Chuẩn hóa một giao diện tập tin đính kèm PHY ngắt. (2) Thêm hỗ trợ cho một ioctl mà có thể được sử dụng để thông báo cho một ứng dụng khi có sự thay đổi trong trạng thái mạng báo hiệu bởi một PHY ngắt.
  • Cải thiện Gửi Logic: Trong quá khứ, các gói tin đầu tiên gửi đến một peer mạng mới sẽ thất bại; sẽ không có mục nhập trong bảng ARP cho các peer và do đó, một yêu cầu ARP có thể thay thế cho rằng gói đầu tiên. Bây giờ là một lựa chọn nếu CONFIG_NET_ARP_SEND = y, tất cả gửi logic sẽ (1) kiểm tra xem địa chỉ MAC peer là trong bảng ARP, và nếu không, (2) gửi yêu cầu ARP định kỳ để có được các bản đồ và (3) chờ đợi phản ứng ARP. Sau đó (4) khi các phản ứng ARP nhận được thì gửi logic thực tế sẽ được bắt đầu. Như vậy có thể có một sự chậm trễ với các gói tin đầu tiên được gửi tới một đồng đẳng mới, nhưng các gói tin không nên bị mất
  • Máy chủ mô phỏng:
  • SPI FLASH Driver:. Mô phỏng SPI FLASH lái xe cho các mục tiêu sim từ Ken Pettit
  • Intel x86:
  • Default Host: Các máy chủ mặc định là doanh nghiệp x86_64 và các tùy chọn -m32 sẽ được chọn tự động cho mô phỏng xây dựng
  • .
  • Intel 8051 Family:
  • 8051 Removed: Loại bỏ tất cả các hỗ trợ cho kiến ​​trúc gia đình 8051 từ nguồn cây NuttX. Các mã lỗi thời cùng với các bản vá loại bỏ bây giờ có thể được tìm thấy tại misc / lỗi thời /. Mã này đã được gỡ bỏ bởi vì (1) mặc dù một số chức năng đã được chứng minh, tôi không biết về bất kỳ cảng thực sự thành công của bất kỳ NuttX 8051, và (2) 8051, với stack phần cứng của nó, lực lượng hạn chế và biến chứng đến các kiến ​​trúc khác và làm cho sự tăng trưởng và phát triển của NuttX phức tạp hơn.
  • Zilog Ban ZNeo:
  • configs / 16z: Hỗ trợ cho các hội đồng này đã được gỡ bỏ từ nguồn cây NuttX (nhưng vẫn có thể được tìm thấy trong misc / thư mục lỗi thời). Cổng này là chưa sẵn sàng cho việc sử dụng nhưng có thể quay trở lại cây NuttX tại một số điểm trong tương lai.
  • Atmel SAM3 / 4 các diễn đàn:
  • SAM4E-EK:.
  • Add (1) một trình điều khiển LCD ILI9341 dựa trên đầy đủ chức năng và (2) một cấu hình NxWM đầy đủ chức năng
  • ARMv7-A:
  • Môi Trường Địa chỉ: Thêm hỗ trợ cho môi trường địa chỉ ứng dụng bằng cách sử dụng Cortex-A MMU. Thực hiện các giao diện nền tảng cụ thể tiêu chuẩn hóa của NuttX hỗ trợ môi trường địa chỉ.
  • Operations Cache: Thực hiện tiêu chuẩn hóa, hoạt động bộ nhớ cache nền tảng cụ thể. Chúng được gọi là từ loader ELF để xả D-cache và vô hiệu I-bộ nhớ cache sau một module ELF đã được nạp vào bộ nhớ. Với sự thay đổi này, các mô-đun ELF làm việc một cách chính xác trên SAMA5 / Cortex-A nền tảng.
  • Kernel tích xây dựng: (1) Thêm triển khai các hệ thống cửa khẩu gọi. (2) Thêm CRT0 tập tin khởi động có thể liên kết với các chương trình sử dụng được xây dựng một cách riêng biệt. (3) Thêm hỗ trợ cho việc phân phối các tín hiệu sử dụng chế độ trong hạt nhân xây dựng. (4) Thêm logic để khởi tạo các người dùng heap cho mỗi quá trình khi mỗi quá trình sử dụng được bắt đầu. (5) ARMv7-A xử lý ngoại lệ cần phải làm việc một chút khác nhau nếu chúng tôi hỗ trợ các quy trình chế độ người dùng. Điều này là do R13 và R14 được phân trang khác nhau giữa người sử dụng và chế độ SVC.
  • Chia sẻ bộ nhớ hỗ trợ: (1) Thêm logic cần thiết để xử lý ánh xạ lại bộ nhớ chia sẻ trên công tắc ngữ cảnh. (2) Mở rộng ảo / chuyển đổi địa chỉ vật lý bao gồm các địa chỉ trong bộ nhớ chia sẻ. (3) Thêm thực hiện các nền tảng cụ thể hỗ trợ bộ nhớ chia sẻ.
  • Atmel SAMA5D Drivers:
  • Network IOCTLs:. Thực hiện tất cả IOCTLs mạng, bao gồm các ioctl mới để thông báo sự kiện thiết lập PHY
  • Chuyển đổi Địa chỉ:.
  • Trong hạt nhân xây dựng với môi trường địa chỉ, cần logic để lập bản đồ sử dụng các địa chỉ ảo sang địa chỉ vật lý, và ngược lại
  • Atmel Ban SAMA5D:
  • SAMA5D3 Xplained, SAMA5D3-EK, và SAMA5D4-EK: Chuyển đổi bảng PHY cụ ngắt giao diện hiện có để sử dụng vừa được định nghĩa giao diện chuẩn
  • .
  • SAMA5D4-EK: Thêm một cấu hình để kiểm tra cấu hình hạt nhân xây dựng. Có cấu hình để khởi động hoặc từ thẻ SD hoặc từ và trong bộ nhớ hệ thống tập tin ROMFS.
  • SAMA5D4-EK: Thêm tài liệu hướng dẫn / hỗ trợ cho Rev E. bảng
  • .
  • STMicro STM32 Drivers:
  • Ethernet: Được thay đổi để hỗ trợ các thay đổi đối với các mạng thay đổi chữ ký ioctl. Cũng hỗ trợ thêm cho ioctl mới để thông báo sự kiện thiết lập PHY.
  • STMicro Ban STM32:
  • STM32F4Discovery với STM32F4DIS-BB: Thêm một mạng cấu hình cho phép NSH cho hội đồng quản trị với Ban cơ sở STM32F4DIS-BB cài đặt STM32F4Discovery. Bao gồm hỗ trợ cho các khe cắm thẻ microSD trên bảng cơ sở STM32F4DIS-BB.
  • TI Tiva Drivers:
  • TI CC3200: Thêm hỗ trợ cho các CC3200 TI. Từ Jim Ewing.
  • TI Ban Tiva:
  • TI CC3200 Launchpad: Thêm hỗ trợ cho các TI CC3200 Launchpad. Từ Jim Ewing.
  • C Thư viện:
  • thăm dò ý kiến ​​():. Re-thực hiện cuộc thăm dò () chậm trễ sử dụng sem_timedwait ()
  • Configuration / Xây dựng hệ thống:
  • Export Target: Trong hạt nhân hoặc bảo vệ xây dựng, (1) chỉ có các thư viện sử dụng nên được xuất khẩu, (2) không sao chép tập tin tiêu đề nội bộ hoặc xây dựng các kịch bản nếu điều này là một hạt nhân hoặc bảo vệ xây dựng, và (3) nhu cầu bó lên các tập tin người dùng C khởi động (crt0), không phải là đối tượng đầu hạt nhân cho các hạt nhân và bảo vệ xây dựng.
  • Program CFLAGS: Thêm logic mà sẽ cho phép chúng tôi để xây dựng thư viện người dùng với CFLAGS khác với mã hạt nhân. Điều này là cần thiết bởi vì chúng ta cần lựa chọn -fno-chung khi xây dựng mã ELF để ngăn chặn di dời SHN_COMMON.
  • Ứng dụng:
  • NSH: Mở rộng mạng lưới NSH khởi logic. Hiện bây giờ là một lựa chọn mà sẽ tạo ra một chủ đề màn hình mạng mà sẽ theo dõi trạng thái của liên kết. Khi liên kết đi xuống, các mã sẽ cố gắng một cách duyên dáng đặt các trình điều khiển Ethernet trong tình trạng xuống; Khi liên kết trở lại, các mã sẽ cố gắng để mang lại mạng lại lên.
  • ELF. Ví dụ: Các thử nghiệm ELF / ví dụ đã được mở rộng để các chương trình thử nghiệm ELF cá nhân có thể liên kết với các thư viện syscall (nếu có) hoặc chống lại các thư viện C để loại bỏ hoặc giảm thiểu sự cần thiết cho các bảng biểu tượng
  • NxTerm: Thay đổi tất cả các lần xuất hiện của NxConsole để NxTerm
  • .
  • MTDRWB. Ví dụ: Thêm một ví dụ để kiểm tra MTD R / W đệm
  • Kiểm tra hệ điều hành Ví dụ: Thêm một thử nghiệm nhỏ của sem_timedwait ()
  • .
































































































































































  • Sửa lỗi:






































































































Phần mềm tương tự

MaheshaBSD
MaheshaBSD

15 Apr 15

ubuntuBSD
ubuntuBSD

9 Aug 16

Ý kiến ​​để NuttX

Bình luận không
Nhập bình luận
Bật hình ảnh!