Atmel Cortex-A5跑Nuttx是如此酸爽

2023-05-16

开源RTOS Nuttx已经支持Atmel SAMA5系列MPU,而且看到Nuttx还支持Graphic API,决定尝试在Ateml SAMA5D3 Xplained上跑下Nuttx。Nuttx是一款开源RTOS,具备非常优秀的实时特性,支持TCP/IP,IPv4, IPv6等网络协议栈,能够支持USB Host/Device协议栈,支持多种文件系统,支持像Linux一样的shell命令行操作。开源PX4无人机飞控平台就是采用的这款RTOS. Nuttx具备以下优秀特性:

  • Standards Compliant
  • Core Task Management
  • Modular design
  • Fully preemptible
  • Naturally scalable
  • Highly configurable
  • Easily extensible to new processor architectures, SoC architecture, or board architectures
  • FIFO, round-robin, and “sporadic” scheduling
  • Realtime, deterministic, with support for priority inheritance
  • Tickless operation
  • POSIX/ANSI-like task controls, named message queues, counting semaphores, clocks/timers, signals, pthreads, robust mutexes, cancellation points, environment variables, filesystem
  • VxWorks-like task management and watchdog timers
  • BSD socket interface
  • Optional tasks with address environments (Processes)
  • Symmetric Multi-Processing (SMP)
  • Loadable kernel modules; lightweight, embedded shared libraries
  • Memory Configurations: (1) Flat embedded build, (2) Protected build with MPU, and (3) Kernel build with MMU
  • Memory Allocators: (1) standard heap memory allocation, (2) granule allocator, (3) shared memory, and (4) dynamically sized, per-process heaps
  • Thread Local Storage (TLS)
  • Inheritable “controlling terminals” and I/O redirection. Pseudo-terminals
  • On-demand paging
  • System logging
  • May be built either as an open, flat embedded RTOS or as a separtely built, secure kernel with a system call gate interface
  • Built-in, per-thread CPU load measurements
  • Custom NuttX C library
  • Application interface well documented in the NuttX User Guide

支持的ARM平台

  • ARM7TDMI (TI TMS320 C5471, Calypso, MoxART, NXP LPC214x, LPC2378, STMicro STR71x)
  • ARM920T (Freescale i.MX1)`
  • ARM926EJS (TI DM320, NXP LPC31xx)
  • ARM Cortex-A5 (Atmel SAMA5D2, SAMA5D3, SAMA5D4)
  • ARM Cortex-A8 (Allwinner A10)
  • ARM Cortex-A9 (NXP/Freescale i.MX6)
  • ARM Cortex-R4/R4F (TI TMS570)
  • ARM Cortex-M0 (nuvoTon NUC120, NXP/Freescale KL25Z, KL26Z, Atmel SAMD20/21, SAML21, ST Micro STM32 F0)
  • ARM Cortex-M3 (ST Micro STM32 F1/L4/F2, TI/Stellaris LM3S, NXP LPC17xx, Atmel SAM3U/3X, SiliconLabs EFM32)
  • ARM Cortex-M4 (with/without floating point unit: ST Micro STM32 F3/F4/L4, TI/Stellaris LM4F/TM4C, NXP LPC43xx, Freescale Kinetis K20/K40/60/64/66, Atmel SAM4C/4E/4S/4L, Infineon XMC4xxx)
  • ARM Cortex-M7 (Atmel SAMV71/SAME70, ST Micro STM32 F7)

支持的文件系统

  • Tiny in-memory, root pseudo-file-system
  • ARM920T (Freescale i.MX1)`
  • Generic system logging (SYSLOG) support
  • FAT12/16/32 filesystem support
  • NFS Client. Client side support for a Network File System (NFS, version 3, UDP)
  • NXFFS. The tiny NuttX wear-leveling FLASH file system
  • SMART. FLASH file system from Ken Pettit
  • ROMFS file system support
  • BINFS pseudo-file system support
  • HOSTFS file system support (simulation only)
  • Union file system. Supports combining and overlaying file systems
  • procfs/ pseudo-file system
  • Generic driver for SPI-based MMC/SD/SDH cards
  • A Binary Loader with support for the following formats:
    Separately linked ELF modules.
    Separately linked NXFLATmodules. NXFLAT is a binary format that can be XIP from a file system.
  • PATH variable support
  • File transfers via TFTP and FTP (get and put), HTML (wget), and Zmodem (sz and rz)
  • Intel HEX conversions

支持的图像Graphic特性

  • Framebuffer drivers
  • Graphic LCD drivers for both parallel and SPI LCDs and OLEDs
  • Segment LCD drivers
  • VNC Server
  • NX Graphics Subsystem: A graphics library, windowing system and font support that works with either framebuffer or LCD drivers
  • NuttX Widgets: A graphical user interface written in conservative C++ that integrates with NX Graphics
  • SMART. FLASH file system from Ken Pettit
  • NuttX Window Manager: A tiny window manager based on the NX Graphics Subsystem and NuttX Widgets

Nuttx在Atmel SAMA5D3 MPU的移植

Nuttx源码已经支持Atmel Cortex-A5系列MPU平台,开发人员只需要参照Nuttx源码目录下configs/sama5d3-xplained/README.txt帮助文件,就可以完成Nuttx的编译工作。需要注意的是Nuttx OS是放在外部的DDR2里面运行的,需要一个bootloader将代码从Nand Flash搬移到外部DDR2。这个bootloader我所采用的也是来自于Atmel官网的bootstrap,一款小巧方便的轻量级bootloader,可以直接用来加载Nuttx或者Linux kernel,移植方面需要做简单的配置即可。 —— [ Atmel SAMA5D3 Xplained官网链接 ]

Nuttx在SAMA5D3 Xplained上运行的效果如下,支持linux一样的命令行操作,每个用户代码都可以单独编译成一个可执行文件,非常的便利,让我又不禁感叹Nuttx的强大,让我很快从uCos/FreeRTOS粉迅速转变为Nuttx粉:
这里写图片描述

Nuttx Graphic运行的效果如下(支持多窗口叠层操作,内置多种字体):
这里写图片描述

后续希望在实际项目中用到这款身材小巧而内心强大的RTOS,Nuttx最早在2007年发布出来,作者是 - [Gregory Nutt]

Greg本身也是牛人一个,有兴趣的可以看下他个人的简历,在Yahoo Group上有个Nuttx开发者群,所有相关的问题都可以在上面提出,Greg会很快给你回复。笔者当时调试时遇到问题,周六半夜2点(北京时间)将问题提交上去,5分钟不到就收到Greg本人亲自给出的回复,一个很nice的人 - [Gregory Nutt Resume]

Nuttx提供了简单的设备驱动模型,方便开发者将自己的应用代码移植到不同的MCU/MPU平台。另外发现Nuttx对Atmel Cortex-M7芯片(一颗非常强大的MCU,DMIP强于ARM Cortex-A8,主频可以到300MHz的单片机) SAMV71 Xplained和SAME70 Xplained也有支持,目前也在上面简单跑过一些例程,非常的好用。Nuttx也支持GDB调试,对于单片机/ARM MCU开发人员来说是个巨大的福利。

对Nuttx的简单介绍就到这里,如果有兴趣的朋友可以发邮件给我 atmel_mpu_support@163.com。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Atmel Cortex-A5跑Nuttx是如此酸爽 的相关文章

  • Cortex-M3利用SVC中断调用系统服务的例子

    SVC xff08 系统服务调用 xff0c 亦简称系统调用 xff09 和PendSV xff08 可悬起系统调用 xff09 xff0c 它们多用在上了操作系统的软件开发中 SVC用于产生系统函数的调用请求 例如 xff0c 操作系统通
  • 我想起我当初玩的DE1-SOC不就是双核ARM cortex A9么

    我想起我当初玩的DE1 SOC不就是双核ARM cortex A9么 确实这种A系列的就是跑Linux或者安卓 可惜你当初没有好好弄弄 xff0c 装个Linux就完事了 没有真正深入去学
  • nuttx和linux区别,Nuttx文件系统

    1 介绍 文件系统 xff0c 是对一个存储设备上的数据和元数据进行组织的机制 xff0c 它是操作系统管理持久性数据的子系统 xff0c 提供数据存储和访问功能 将一个文件系统与一个存储设备关联起来的过程叫做挂载 mount xff0c
  • nuttx-概述

    早期基于MSP430系列 STM32系列 EFM32系列 AT91SAM9X imx6ul系列做各种物联网产品 xff0c 近几年国芯片慢慢崛起 xff0c 加上ST芯片价格暴涨 xff0c 更是让国产芯片赢得了难得的发展机会 xff0c
  • Cortex-A7中断控制器GIC

    Cortex A7中断控制器GIC 中断号 芯片内部的中断都会引起IRQ InterruptGIC将所有的中断源 最多1020个中断ID 分为三类 SPI SharedPeripheralInterrupt 共享中断 xff0c 外部中断都
  • Cortex-M4和Cortex-M7中的SIMD指令

    SIMD指令简介 单指令多数据流 xff0c 即SIMD xff08 Single Instruction xff0c Multiple Data xff09 指一类能够在单个指令周期内同时处理多个数据元素的指令集 xff0c 利用的是数据
  • px4之nuttx操作系统编译

    nuttx 嵌入式操作系统 1 下载源码 https nuttx apache org download 分别下载app和os 下载完毕后 xff0c 解压两个压缩包 2 根据当前嵌入式的开发板子 xff0c 进行配置 span class
  • 《Cortex-M0权威指南》之Cortex-M0技术综述

    Cortex M0权威指南 之Cortex M0技术综述 转载请注明来源 xff1a cuixiaolei的技术博客 Cortex M0 处理器简介 1 Cortex M0 处理器基于冯诺依曼架构 xff08 单总线接口 xff09 xff
  • ARM Cortex-M4和Cortex-M0+中断优先级及嵌套抢占问题

    转自 xff1a http blog chinaaet com jihceng0622 p 5100001238 坐在上海回北京的高铁上 xff0c 漫长的旅途着实让人感到无聊 xff08 没买到直达的高铁 xff0c 只能慢悠悠的走一站停
  • genromfs的使用及nuttx下romfs制作

    61 61 61 61 61 gt 我的博客目录导航 前言 这篇文章仅仅是为了记录如何使用genromfs制作romfs然后在nuttx上直接应用 xff0c 不会去详细介绍romfs的一系列特性 genromfs 首先去下载genromf
  • Nuttx下移植uorb笔记

    Nuttx下移植uorb笔记 之前接触过ros下的消息机制 xff08 生产者 消费者 xff09 模型 xff0c 第一感觉是灵活好用 xff0c 但是在资源有限的嵌入式环境里面 xff0c 邮箱 消息 显得就有点不那么灵活 xff0c
  • nuttx操作系统的移植以及下载

    1 在ubuntu根目录下 xff1a root 64 ubuntu apt get update 更新包 2 root 64 ubuntu apt get install gcc arm none eabi 编译器 3 kconfig f
  • IAR ARM Cortex-M3下载程序至RAM中运行

    默认icf文件中ROM地址为0x0800 0000 xff0c 通过修改其中地址可实现将代码下载到RAM中 新建Configuration 新建Configuration用于区分 Project gt Edit Configurations
  • 意外发现,Cortex-M7的性能和诸多关键参数碾压A7和R7

    origin https www amobbs com thread 5676525 1 1 html 之前一直以为ARM A R M M排在最后也最便宜 xff0c 肯定性能最低 xff0c 但最近意外发现并非如此 xff0c M7居然完
  • Microchip Studio 7.0 如何编译工程项目

    Microchip Studio 7 0 系列教程 1 Microchip Studio 7 0 如何修改字体大小Microchip Studio 7 0 如何修改字体大小 2 MicroChip Studio 7 0如何快速打开 h文件
  • GCC AVR(Atmel Studio+ AVR Studio)如何在程序存储器(flash)空间存放字符串常量和使用字符串常量

    目录 一 program memory和data memory 二 如何将字符串变量定义到program memory flash 三 如何读取字符串变量 四 PSTR 五 使用strcpy 函数将字符串常量拷贝字符串缓冲区会占用大量的da
  • 将静态库答案放在 flash 部分的开头

    我正在使用 atmelstudio 编译固件映像 并希望将静态库 包括 gnu 的 libc a 和 libgcc a 中的函数放在 text 部分的开头 后面的 text 属于我的项目源代码 现在发生的情况恰恰相反 这是我的链接器脚本 A
  • 如何将 .c 和 .h 文件添加到 Atmel Studio 6?

    我知道关于这个主题有很多问题 而且我已经研究了其中相当多的问题 但是我仍然遇到问题 我开始为 PCB 原型编写测试程序 现在它已增长到近 1000 行 我正尝试将其分解为可用于特定功能的库 我以为这会很简单 为我需要的每个库制作 c 和 h
  • Atmel SAM3X 双组切换不起作用

    我目前正在使用 Atmel SAM3X8 ARM 微控制器 该微控制器具有双组 2 x 256KB 闪存 我正在尝试实现固件更新功能 将新固件放入当前未使用的闪存库中 完成后使用闪存重新映射交换库以运行新固件 数据表指出 为此我需要设置 G
  • 如何在Android 5内核设备树中正确配置Atmel MXT641T触摸芯片的INT线中断?

    我在 Android 5 平台上使用 Atmel MXT641T 驱动的触摸屏时遇到问题 我的设置如下 硬件 Inforce 6309 SBC 配备 Qualcomm Snapdragon 410 msm8916 ARM64 处理器 采用

随机推荐

  • ROS学习番外篇12—Mac M1(Pro+Max)安装ROS1或ROS2须知

    由于苹果换了芯片架构 xff0c 因此裸机安装ROS2或者源码安装ROS1和ROS2变得非常困难 使用Parallels Desktop或者其他虚拟机 xff08 比如UTM xff09 安装Ubuntu然后再在Ubuntu上安装ROS是目
  • stm32cubemx hal学习记录:PWR 低功耗停止模式

    一 低功耗停止模式 1 所有时钟都已经停止 2 进入方式 xff1a 配置PWR CR寄存器的PDDS 43 LPDS位 43 SLEEPDEEP位 43 WFI或WFE命令 3 唤醒方式 xff1a 任意外部中断 4 关闭所有1 8v区域
  • Ubuntu下查看文件、文件夹和磁盘空间的大小

    在实际使用ubuntu时候 xff0c 经常要碰到需要查看文件以及文件夹大小的情况 有时候 xff0c 自己创建压缩文件 xff0c 可以使用 ls hl 查看文件大小 参数 h 表示Human Readable xff0c 使用GB MB
  • stm32cubemx hal学习记录:FreeRTOS任务管理

    一 基本配置 1 配置RCC USART1 时钟84MHz 2 配置SYS xff0c 将Timebase Source修改为除滴答定时器外的其他定时器 xff0c 因为滴答定时器被用于时钟基准 xff0c 可以实现任务切换 Timebas
  • 【面试笔试-c/c++】2013年校园招聘创新工场笔试题(北邮场)

    2013年校园招聘创新工场笔试题 xff08 北邮场 xff09 及一面 题目节后补上 回家了 xff0c 上网不方便 面试题 一面 xff1a 1 手写二叉树的中序非递归遍历 xff0c 一步一步解释代码 xff0c 给个二叉树示范代码流
  • PX4驱动分析之MPU6000

    PX4驱动分析之MPU6000 前言 xff1a 首先分析PX4中MPU6000传感器驱动的注册 xff0c 调用 xff0c 实例的过程 xff0c 先要理解一个事情 就是PX4是使用了一个类Linux操作系统的Nuttx操作系统 也就是
  • PX4分析系列之添加北醒TOF传感器(使用UART)

    PX4分析系列之添加北醒TOF传感器 xff08 使用UART xff09 提示 xff1a 一个飞行器爱好者 xff0c 才疏学浅 通过自己学习PX4源码的过程 xff0c 进行分析和记录 欢迎各路大神讨论 xff0c 并指正文中错误 x
  • 产品化的理解

    我对产品化的理解 产品化的时机是看业务的需要 xff0c 不管是对前景的落实 xff0c 还是项目转化成产品 xff0c 这些都不是技术人员能考虑的 xff0c 业务的发展和策划 xff0c 如何进行市场细化等如果都由技术人员考虑 xff0
  • JS对象转insert语句

    function obj2Sql tablename obj var sqls 61 34 34 f 61 34 34 v 61 34 34 obj forEach o 61 gt f 61 34 34 v 61 34 34 for let
  • HTML5小试 双人贪吃蛇

    lt html gt lt head gt lt head gt lt body gt lt div style 61 34 float left 34 gt 当前速度1 xff1a lt button nclick 61 34 jianc
  • 九个Console命令,让js调试更简单

    九个Console命令 xff0c 让js调试更简单 一 显示信息的命令 lt DOCTYPE html gt lt html gt lt head gt lt title gt 常用console命令 lt title gt lt met
  • echarts自定义功能按钮图片 网络路径格式

    toolbox show true orient 39 vertical 39 x 39 left 39 top 39 20 39 feature myTool show true title 39 自定义扩展方法 39 icon 39 i
  • 上班摸鱼逛博客,逮到一个字节8年测试开发,聊过之后羞愧难当......

    老话说的好 xff0c 这人呐 xff0c 一旦在某个领域鲜有敌手了 xff0c 就会闲得某疼 前几天我在上班摸鱼刷博客的时候认识了一位字节测试开发大佬 xff0c 在字节工作了8年 xff0c 因为本人天赋比较高 xff0c 平时工作也兢
  • Ubuntu下USB权限问题以及udev规则文件笔记

    在ubuntu系统下使用传感器的时候 xff0c 通常会遇到一些权限上的问题 比如我使用ROS驱动包来启动bluefox摄像头 xff0c 如果没有任何关于权限上的处理就会提示权限问题导致无法正常启动该摄像头 xff0c 如下图 xff1a
  • 三.卡尔曼滤波器(EKF)开发实践之三: 基于三个传感器的海拔高度数据融合

    本系列文章主要介绍如何在工程实践中使用卡尔曼滤波器 分七个小节介绍 一 卡尔曼滤波器开发实践之一 五大公式 二 卡尔曼滤波器开发实践之二 一个简单的位置估计卡尔曼滤波器 三 卡尔曼滤波器 EKF 开发实践之三 基于三个传感器的海拔高度数据融
  • 树莓派 - 1 安装与配置 - a 系统安装(Raspbian)

    xff08 1 xff09 软件 Raspbian operating system https www raspberrypi org downloads raspbian Etcher SD card writing tool http
  • 分享一个Linux的录屏工具script

    在使用该命令后 xff0c 直接录屏 xff0c 会记录终端在命令行的所有动作 想让别人帮你操作 xff0c 但你的思路跟不上对方敲命令的速度 xff0c 可以先录下来 xff0c 然后回去慢慢琢磨 我的是centos7系统 span cl
  • 最佳Linux防病毒软件推荐!

    看到标题或许你会疑问 xff0c linux如此安全 xff0c 为什么我们还需要安装防病毒软件呢 确实 xff0c linux为全球超过70 的web服务器提供支持 xff0c 黑客极有动机来制造强大的病毒来渗透这些服务器安全系统 xff
  • NvidiaAGXXavier刷机Jetpack5.0.2报错记录(已解决,非搬运)

    网上有很多教程 xff0c 很详细的讲了这个板子刷机应该怎么去做 xff0c 正常的话就按照那个步骤走就可以了 xff0c 这里就不再赘述了 xff0c 但是我在给自己的NvidiaAgxXavier刷Jetpack5 0 2的时候 xff
  • Atmel Cortex-A5跑Nuttx是如此酸爽

    开源RTOS Nuttx已经支持Atmel SAMA5系列MPU xff0c 而且看到Nuttx还支持Graphic API xff0c 决定尝试在Ateml SAMA5D3 Xplained上跑下Nuttx Nuttx是一款开源RTOS