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

评论没有发现
添加评论
打开图片!