This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
proiecte:nuttx-sparrow [2018/11/22 22:42] razvan.barbascu created |
proiecte:nuttx-sparrow [2018/11/22 23:47] (current) razvan.barbascu [Setup] |
||
---|---|---|---|
Line 5: | Line 5: | ||
===== Hardware ===== | ===== Hardware ===== | ||
- | If you are not familiar with Sparrow you can find more about it [[: | + | If you are not familiar with Sparrow you can find more about it here: [[: |
===== NuttX ===== | ===== NuttX ===== | ||
+ | [[http:// | ||
+ | |||
+ | Nuttx is very flexible when it comes to communication protocols. | ||
+ | It support a large range of protocols from low power ones like 6LoWPAN for radio network drivers (IEEE 802.15.4 MAC and generic packet radios), Radio Network Drivers: IEEE 802.15.4 MAC, Generic Packet Radio, Bluetooth LE. But also more advanced protocols like IEEE 802.11 FullMac, IPv4, IPv6, TCP/IP, UDP, ARP, ICMP, ICMPv6, IGMPv2 (client) stacks. | ||
+ | |||
+ | Memory allocation on this RTOS is grouped into standard heap memory allocation, granule allocator, shared memory, and dynamically sized, per-process heaps. Depending on what platform you chose to run Nuttx, you can adapt this memory allocator to use the appropriate amount of memory. | ||
+ | |||
+ | This RTOS is made to be portable and works most of the ARM processors, 8-bit Atmel architecture and more. It also has a large number of drivers already implemented, | ||
+ | |||
+ | When it comes to multi-threading and scheduling, Nuttx is the most advanced one, having implemented a few scheduling algorithms like FIFO, round-robin, | ||
+ | |||
+ | NuttX uses a flash aware file system which handles all the operations with the memory and makes it transparent to the user. It is a filesystem that has been designed to work primary with small, serial NOR type flash parts that are 1M byte to 16M byte in size (though this is not a limitation). The filesystem operates by segmenting the flash (or flash partition) into “logical sectors” of equal size and then managing them (allocating, | ||
+ | |||
+ | Nuttx also provides an optional small, scalable, bash-like shell with rich feature set and small footprint used for debugging, configuration and launching applications. | ||
===== Setup ===== | ===== Setup ===== | ||
+ | <code bash Install Packets> | ||
+ | sudo apt-get install build-essential git texinfo libgmp-dev libmpfr-dev libmpc-dev libncurses5-dev bison flex gettext gperf libtool autoconf pkg-config libftdi-dev libusb-1.0-0-dev zlib1g zlib1g-dev python-yaml gcc-avr avr-libc avrdude | ||
+ | </ | ||
+ | |||
+ | <code bash Install NuttX Tools> | ||
+ | clone tools repo: https:// | ||
+ | cd tools/ | ||
+ | ./configure --enable-mconf | ||
+ | LD_RUN_PATH=/ | ||
+ | make | ||
+ | make install | ||
+ | </ | ||
+ | |||
+ | <code bash Get NuttX for Sparrow> | ||
+ | git clone git@bitbucket.org: | ||
+ | cd nuttx_sparrow | ||
+ | </ | ||
+ | |||
+ | <code bash Configure and Build> | ||
+ | LD_LIBRARY_PATH=/ | ||
+ | make | ||
+ | </ | ||
+ | |||
+ | <code bash Flash to board> | ||
+ | tools/ | ||
+ | </ | ||
+ | |||
+ | Connecting to the serial port gives us the NuttxShell. | ||
+ | <code > | ||
+ | screen / | ||
+ | </ | ||
+ | |||
===== Bibliography ===== | ===== Bibliography ===== | ||
+ | [[http:// | ||
+ | [[https:// |