README.txt 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. README
  2. ^^^^^
  3. This is the README file for the port of NuttX to the Micropendous 3 board.
  4. This board is develepmend by http://code.google.com/p/opendous/. The
  5. Micropendous 3 is based on an Atmel AT90USB646, 647, 1286 or 1287 MCU.
  6. NuttX was ported using the AT90USB647 version. As of this writing,
  7. documentation for the Micropendous board is available here:
  8. http://code.google.com/p/micropendous/wiki/Micropendous3
  9. Contents
  10. ^^^^^^^^
  11. o Micropendous3 Features
  12. o Pin Usage
  13. o Atmel AVRISP mkII Connection
  14. o DFU Bootloader
  15. o Serial Console
  16. o Toolchains
  17. o Windows Native Toolchains
  18. o NuttX buildroot Toolchain
  19. o avr-libc
  20. o Micropendous3 Configuration Options
  21. o Configurations
  22. Micropendous3 Features
  23. ^^^^^^^^^^^^^^^^^^^^^^
  24. o Based on the 64-pin USB AVR Microcontrollers: AT90USB646, AT90USB647,
  25. AT90USB1286, or AT90USB1287.
  26. o USB Full Speed (12Mbit/s)
  27. o USB Device Mode (Host mode supported with AT90USBxx7 devices)
  28. o 60kb (AT90USB64) or 120kb (AT90USB128) of available FLASH memory for
  29. your programs (4kb(AT90USB64)/8kb(AT90USB128) used by USB bootloader -
  30. stock Atmel or LUFA)
  31. o 4 kbytes SRAM and 2 kbytes of EEPROM (AT90USB64) or 8 kbytes SRAM and 4
  32. kbytes of EEPROM (AT90USB128)
  33. o External SRAM is possible. Layout for CY7C1019D 1-Mbit SRAM (unpopulated)
  34. o USB powered
  35. o 16MHz crystal
  36. o 48 General Purpose IO Pins (47 with external SRAM)
  37. o Vcc=VBUS jumper selects whether USB VBUS or an external supply is used
  38. to power the board
  39. o RESET and HWB buttons to enable firmware loading over USB (no external
  40. programmer required)
  41. o HWB can be used as a user button
  42. o USB-A Plug
  43. o JTAG header
  44. o Size LxWxH (including headers): 3.15" x 0.8" x 0.6" =~ 8cm x 2cm x 1.5cm
  45. o Completely OpenHardware Design
  46. Pin Usage
  47. ^^^^^^^^^
  48. AT90USB90128/64 TQFP64
  49. -- ------------------------ ---------------------------------------------
  50. PIN SIGNAL BOARD CONNECTION
  51. -- ------------------------ ---------------------------------------------
  52. (left)
  53. 1 (INT.6/AIN.0) PE6 J3-25 E6, CY7C1019D ^CE (Unpopulated)
  54. 2 (INT.7/AIN.1/UVcon) PE7 J3-26 E7, CY7C1019D A16 (Unpopulated)
  55. 3 UVcc
  56. 4 D- USB DP
  57. 5 D+ USB DM
  58. 6 UGnd GND
  59. 7 UCap GND (via cap)
  60. 8 VBus USB VBUS
  61. 9 (IUID) PE3 J3-22 E3
  62. 10 (SS/PCINT0) PB0 J3-28 B0
  63. 11 (PCINT1/SCLK) PB1 J3-29 B1
  64. 12 (PDI/PCINT2/MOSI) PB2 J3-30 B2
  65. 13 (PDO/PCINT3/MISO) PB3 J3-31 B3
  66. 14 (PCINT4/OC.2A) PB4 J3-32 B4
  67. 15 (PCINT5/OC.1A) PB5 J3-33 B5
  68. 16 (PCINT6/OC.1B) PB6 J3-34 B6
  69. (bottom)
  70. 17 (PCINT7/OC.0A/OC.1C) PB7 J3-35 B7
  71. 18 (INT4/TOSC1) PE4 J3-23 E4
  72. 19 (INT.5/TOSC2) PE5 J3-24 E5
  73. 20 RESET SW1
  74. 21 VCC VCC
  75. 22 GND GND
  76. 23 XTAL2 X1
  77. 24 XTAL1 X1
  78. 25 (OC0B/SCL/INT0) PD0 J3-36 D0
  79. 26 (OC2B/SDA/INT1) PD1 J3-37 D1
  80. 27 (RXD1/INT2) PD2 J3-38 D2
  81. 28 (TXD1/INT3) PD3 J3-39 D3
  82. 29 (ICP1) PD4 J3-40 D4
  83. 30 (XCK1) PD5 J3-41 D5
  84. 31 (T1) PD6 J3-42 D6
  85. 32 (T0) PD7 J3-43 D7
  86. (right)
  87. 48 PA3 (AD3) J3-14 A3, 74AHC573 D3, CY7C1019D |O3 (Unpopulated)
  88. 47 PA4 (AD4) J3-15 A4, 74AHC573 D4, CY7C1019D |O4 (Unpopulated)
  89. 46 PA5 (AD5) J3-16 A5, 74AHC573 D5, CY7C1019D |O5 (Unpopulated)
  90. 45 PA6 (AD6) J3-17 A6, 74AHC573 D6, CY7C1019D |O6 (Unpopulated)
  91. 44 PA7 (AD7) J3-18 A7, 74AHC573 D7, CY7C1019D |O7 (Unpopulated)
  92. 43 PE2 (ALE/HWB) SW-2 (pulled-up), J3-21 E2, 74AHC573 Cp
  93. 42 PC7 (A15/IC.3/CLKO) J3-51 C7, CY7C1019D A15 (Unpopulated)
  94. 41 PC6 (A14/OC.3A) J3-50 C6, CY7C1019D A14 (Unpopulated)
  95. 40 PC5 (A13/OC.3B) J3-49 C5, CY7C1019D A13 (Unpopulated)
  96. 39 PC4 (A12/OC.3C) J3-48 C4, CY7C1019D A12 (Unpopulated)
  97. 38 PC3 (A11/T.3) J3-47 C3, CY7C1019D A11 (Unpopulated)
  98. 37 PC2 (A10) J3-46 C2, CY7C1019D A10 (Unpopulated)
  99. 36 PC1 (A9) J3-45 C1, CY7C1019D A9 (Unpopulated)
  100. 35 PC0 (A8) J3-44 C0, CY7C1019D A8 (Unpopulated)
  101. 34 PE1 (RD) J3-20 E1, CY7C1019D ^OE (Unpopulated)
  102. 33 PE0 (WR) J3-19 E0, CY7C1019D ^WE (Unpopulated)
  103. (top)
  104. 64 AVCC (Power circuitry)
  105. 63 GND GND
  106. 62 AREF J3-2 AREF, (Power circuitry)
  107. 61 PF0 (ADC0) J3-3 F0
  108. 60 PF1 (ADC1) J3-4 F1
  109. 59 PF2 (ADC2) J3-5 F2
  110. 58 PF3 (ADC3) J3-6 F3
  111. 57 PF4 (ADC4/TCK) J3-7 F4, JTAG TCK
  112. 56 PF5 (ADC5/TMS) J3-8 F5, JTAG TMS
  113. 55 PF6 (ADC6/TDO) J3-9 F6, JTAG TD0
  114. 54 PF7 (ADC7/TDI) J3-20 F7, JTAG TDI
  115. 53 GND GND
  116. 52 VCC VCC
  117. 51 PA0 (AD0) J3-11 A0, 74AHC573 D0, CY7C1019D |O0 (Unpopulated)
  118. 50 PA1 (AD1) J3-12 A1, 74AHC573 D1, CY7C1019D |O1 (Unpopulated)
  119. 49 PA2 (AD2) J3-13 A2, 74AHC573 D2, CY7C1019D |O2 (Unpopulated)
  120. Atmel AVRISP mkII Connection
  121. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  122. ISP6PIN Header
  123. --------------
  124. 1 2
  125. MISO o o VCC
  126. SCK o o MOSI
  127. RESET o o GND
  128. Micropendous 3 JTAG (JTAG10PIN Connector)
  129. ------------------- ---------------------
  130. 1 2 1 2
  131. TCK o o GND TCK o o GND
  132. TDO o o VCC TDO o o VTref
  133. TMS o o RESET TMS o o nSRST
  134. VCC o o N/C o o (nTRST)
  135. TDI o o GND TDI o o GND
  136. JTAGICE mkII Connection to 10-pin Header
  137. ------------------------------------------
  138. 10PIN Header 6PIN Header
  139. -------------------- ---------------------
  140. Pin 1 TCK Pin 3 SCK
  141. Pin 2 GND Pin 6 GND
  142. Pin 3 TDO Pin 1 MISO
  143. Pin 4 VTref Pin 2 Vcc
  144. Pin 6 nSRT Pin 5 Reset
  145. Pin 9 TDI Pin 4 MOSI
  146. DFU Bootloader
  147. ^^^^^^^^^^^^^^
  148. There is also an DFU bootloader that resides in the upper 8Kb of FLASH
  149. (unless you ERASE the flash with with ICE). You can enter this bootloader
  150. (if it is in FLASH) by:
  151. Holding both the SW1 (RESET) and SW2, then releasing SW1 while continuing
  152. to hold SW2. SW2 connects to the PE2/HWB signal and causes a reset into
  153. the bootloader memory region.
  154. Then you can use FLIP to load code into FLASH (available at the Atmel Web
  155. Site). The DFU USB driver for the DFU bootload is available in the usb
  156. subdirectory in the FLIP installation location.
  157. Serial Console
  158. ^^^^^^^^^^^^^^
  159. A serial console is supported on an external MAX232/MAX3232 Connected
  160. on PD2 and PD3:
  161. Port D, Bit 2: RXD1, Receive Data (Data input pin for the USART1). When
  162. the USART1 receiver is enabled this pin is configured as an input
  163. regardless of the value of DDD2. When the USART forces this pin to
  164. be an input, the pull-up can still be controlled by the PORTD2 bit.
  165. Port D, Bit 3: TXD1, Transmit Data (Data output pin for the USART1).
  166. When the USART1 Transmitter is enabled, this pin is configured as
  167. an output regardless of the value of DDD3.
  168. AT90USB90128/64 TQFP64
  169. -- ------------------------ ---------------------------------------------
  170. PIN SIGNAL BOARD CONNECTION
  171. -- ------------------------ ---------------------------------------------
  172. 27 (RXD1/INT2) PD2 J3-38 D2
  173. 28 (TXD1/INT3) PD3 J3-39 D3
  174. Toolchains
  175. ^^^^^^^^^^
  176. There are several toolchain options. However, testing has been performed
  177. using *only* the NuttX buildroot toolchain described below. Therefore,
  178. the NuttX buildroot toolchain is the recommended choice.
  179. The toolchain may be selected using the kconfig-mconf tool (via 'make menuconfig'),
  180. by editing the existing configuration file (defconfig), or by overriding
  181. the toolchain on the make commandline with CONFIG_AVR_TOOLCHAIN=<toolchain>.
  182. The valid values for <toolchain> are BUILDROOT, CROSSPACK, LINUXGCC and WINAVR.
  183. Buildroot:
  184. There is a DIY buildroot version for the AVR boards here:
  185. http://bitbucket.org/nuttx/buildroot/downloads/. See the
  186. following section for details on building this toolchain.
  187. Before building, make sure that the path to the new toolchain is included
  188. in your PATH environment variable.
  189. After configuring NuttX, make sure that CONFIG_AVR_BUILDROOT_TOOLCHAIN=y is set in your
  190. .config file.
  191. WinAVR:
  192. For Cygwin development environment on Windows machines, you can use
  193. WinAVR: http://sourceforge.net/projects/winavr/files/
  194. Before building, make sure that the path to the new toolchain is included
  195. in your PATH environment variable.
  196. After configuring NuttX, make sure that CONFIG_AVR_WINAVR_TOOLCHAIN=y is set in your
  197. .config file.
  198. WARNING: There is an incompatible version of cygwin.dll in the WinAVR/bin
  199. directory! Make sure that the path to the correct cygwin.dll file precedes
  200. the path to the WinAVR binaries!
  201. Linux:
  202. For Linux, there are widely available avr-gcc packages. On Ubuntu, use:
  203. sudo apt-get install gcc-avr gdb-avr avr-libc
  204. After configuring NuttX, make sure that CONFIG_AVR_LINUXGCC_TOOLCHAIN=y is set in your
  205. .config file.
  206. Mac OS X:
  207. For Mac OS X, the CrossPack for AVR toolchain is available from:
  208. http://www.obdev.at/products/crosspack/index.html
  209. This toolchain is functionally equivalent to the Linux GCC toolchain.
  210. Windows Native Toolchains
  211. ^^^^^^^^^^^^^^^^^^^^^^^^^
  212. The WinAVR toolchain is a Windows native toolchain. There are several
  213. limitations to using a Windows native toolchain in a Cygwin environment.
  214. The three biggest are:
  215. 1. The Windows toolchain cannot follow Cygwin paths. Path conversions are
  216. performed automatically in the Cygwin makefiles using the 'cygpath'
  217. utility but you might easily find some new path problems. If so, check
  218. out 'cygpath -w'
  219. 2. Windows toolchains cannot follow Cygwin symbolic links. Many symbolic
  220. links are used in Nuttx (e.g., include/arch). The make system works
  221. around these problems for the Windows tools by copying directories
  222. instead of linking them. But this can also cause some confusion for
  223. you: For example, you may edit a file in a "linked" directory and find
  224. that your changes had no effect. That is because you are building the
  225. copy of the file in the "fake" symbolic directory. If you use a
  226. Windows toolchain, you should get in the habit of making like this:
  227. make clean_context all
  228. An alias in your .bashrc file might make that less painful.
  229. An additional issue with the WinAVR toolchain, in particular, is that it
  230. contains an incompatible version of the Cygwin DLL in its bin/ directory.
  231. You must take care that the correct Cygwin DLL is used.
  232. NuttX buildroot Toolchain
  233. ^^^^^^^^^^^^^^^^^^^^^^^^^
  234. If NuttX buildroot toolchain source tarball cne can be downloaded from the
  235. NuttX Bitbucket download site (https://bitbucket.org/nuttx/nuttx/downloads/).
  236. This GNU toolchain builds and executes in the Linux or Cygwin environment.
  237. 1. You must have already configured Nuttx in <some-dir>/nuttx.
  238. cd tools
  239. ./configure.sh micropendous3/<sub-dir>
  240. NOTE: you also must copy avr-libc header files into the NuttX include
  241. directory with command perhaps like:
  242. cp -a /cygdrive/c/WinAVR/include/avr include/.
  243. 2. Download the latest buildroot package into <some-dir>
  244. 3. unpack the buildroot tarball. The resulting directory may
  245. have versioning information on it like buildroot-x.y.z. If so,
  246. rename <some-dir>/buildroot-x.y.z to <some-dir>/buildroot.
  247. 4. cd <some-dir>/buildroot
  248. 5. cp configs/avr-defconfig-4.5.2 .config
  249. 6. make oldconfig
  250. 7. make
  251. 8. Make sure that the PATH variable includes the path to the newly built
  252. binaries.
  253. See the file configs/README.txt in the buildroot source tree. That has more
  254. detailed PLUS some special instructions that you will need to follow if you
  255. are building a toolchain for Cygwin under Windows.
  256. avr-libc
  257. ^^^^^^^^
  258. Header Files
  259. In any case, header files from avr-libc are required: http://www.nongnu.org/avr-libc/.
  260. A snapshot of avr-lib is included in the WinAVR installation. For Linux
  261. development platforms, avr-libc package is readily available (and would
  262. be installed in the apt-get command shown above). But if you are using
  263. the NuttX buildroot configuration on Cygwin, then you will have to build
  264. get avr-libc from binaries.
  265. Header File Installation
  266. The NuttX build will required that the AVR header files be available via
  267. the NuttX include directory. This can be accomplished by either copying
  268. the avr-libc header files into the NuttX include directory:
  269. cp -a <avr-libc-path>/include/avr <nuttx-path>/include/.
  270. Or simply using a symbolic link:
  271. ln -s <avr-libc-path>/include/avr <nuttx-path>/include/.
  272. Build Notes:
  273. It may not necessary to have a built version of avr-lib; only header files
  274. are required. Bu if you choose to use the optimized libraru functions of
  275. the flowing point library, then you may have to build avr-lib from sources.
  276. Below are instructions for building avr-lib from fresh sources:
  277. 1. Download the avr-libc package from:
  278. http://savannah.nongnu.org/projects/avr-libc/
  279. I am using avr-lib-1.7.1.tar.bz2
  280. 2. Upack the tarball and cd into the
  281. tar jxf avr-lib-1.7.1.tar.bz2
  282. cd avr-lib-1.7.1
  283. 3. Configure avr-lib. Assuming that WinAVR is installed at the following
  284. location:
  285. export PATH=/cygdrive/c/WinAVR/bin:$PATH
  286. ./configure --build=`./config.guess` --host=avr
  287. This takes a *long* time.
  288. 4. Make avr-lib.
  289. make
  290. This also takes a long time because it generates variants for nearly
  291. all AVR chips.
  292. 5. Install avr-lib.
  293. make install
  294. Micropendous3 Configuration Options
  295. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  296. CONFIG_ARCH - Identifies the arch/ subdirectory. This should
  297. be set to:
  298. CONFIG_ARCH=avr
  299. CONFIG_ARCH_family - For use in C code:
  300. CONFIG_ARCH_AVR=y
  301. CONFIG_ARCH_architecture - For use in C code:
  302. CONFIG_ARCH_CHIP_AT90USB=y
  303. CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
  304. CONFIG_ARCH_CHIP=at90usb
  305. CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
  306. chip. This should be exactly one of
  307. CONFIG_ARCH_CHIP_AT90USB646=y
  308. CONFIG_ARCH_CHIP_AT90USB647=y
  309. CONFIG_ARCH_CHIP_AT90USB1286=y
  310. CONFIG_ARCH_CHIP_AT90USB1287=y
  311. Depending on which Micropendous3 version you have.
  312. CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
  313. hence, the board that supports the particular chip or SoC.
  314. CONFIG_ARCH_BOARD=micropendous3
  315. CONFIG_ARCH_BOARD_name - For use in C code
  316. CONFIG_ARCH_BOARD_MICROPENOUS3=y
  317. CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
  318. of delay loops
  319. CONFIG_ENDIAN_BIG - define if big endian (default is little
  320. endian)
  321. CONFIG_RAM_SIZE - Describes the installed DRAM. One of:
  322. CONFIG_RAM_SIZE=(4*1024) - (4Kb)
  323. CONFIG_RAM_SIZE=(8*1024) - (8Kb)
  324. CONFIG_RAM_START - The start address of installed SRAM
  325. CONFIG_RAM_START=0x800100
  326. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
  327. have LEDs
  328. CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
  329. stack. If defined, this symbol is the size of the interrupt
  330. stack in bytes. If not defined, the user task stacks will be
  331. used during interrupt handling.
  332. CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
  333. CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
  334. CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
  335. cause a 100 second delay during boot-up. This 100 second delay
  336. serves no purpose other than it allows you to calibratre
  337. CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
  338. the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
  339. the delay actually is 100 seconds.
  340. Individual subsystems can be enabled:
  341. CONFIG_AVR_INT0=n
  342. CONFIG_AVR_INT1=n
  343. CONFIG_AVR_INT2=n
  344. CONFIG_AVR_INT3=n
  345. CONFIG_AVR_INT4=n
  346. CONFIG_AVR_INT5=n
  347. CONFIG_AVR_INT6=n
  348. CONFIG_AVR_INT7=n
  349. CONFIG_AVR_USBHOST=n
  350. CONFIG_AVR_USBDEV=n
  351. CONFIG_AVR_WDT=n
  352. CONFIG_AVR_TIMER0=n
  353. CONFIG_AVR_TIMER1=n
  354. CONFIG_AVR_TIMER2=n
  355. CONFIG_AVR_TIMER3=n
  356. CONFIG_AVR_SPI=n
  357. CONFIG_AVR_USART1=y
  358. CONFIG_AVR_ANACOMP=n
  359. CONFIG_AVR_ADC=n
  360. CONFIG_AVR_TWI=n
  361. If the watchdog is enabled, this specifies the initial timeout. Default
  362. is maximum supported value.
  363. CONFIG_WDTO_15MS
  364. CONFIG_WDTO_30MS
  365. CONFIG_WDTO_60MS
  366. CONFIG_WDTO_120MS
  367. CONFIG_WDTO_1250MS
  368. CONFIG_WDTO_500MS
  369. CONFIG_WDTO_1S
  370. CONFIG_WDTO_2S
  371. CONFIG_WDTO_4S
  372. CONFIG_WDTO_8S
  373. AT90USB specific device driver settings
  374. CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the
  375. console and ttys0 (default is no serial console).
  376. CONFIG_USARTn_RXBUFSIZE - Characters are buffered as received.
  377. This specific the size of the receive buffer
  378. CONFIG_USARTn_TXBUFSIZE - Characters are buffered before
  379. being sent. This specific the size of the transmit buffer
  380. CONFIG_USARTn_BAUD - The configure BAUD of the USART. Must be
  381. CONFIG_USARTn_BITS - The number of bits. Must be either 7 or 8.
  382. CONFIG_USARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
  383. CONFIG_USARTn_2STOP - Two stop bits
  384. Configurations
  385. ^^^^^^^^^^^^^^
  386. Common Configuration Notes
  387. --------------------------
  388. 1. Each Micropendous3 configuration is maintained in a sub-directory and
  389. can be selected as follow:
  390. cd tools
  391. ./configure.sh micropendous3/<subdir>
  392. cd -
  393. Where <subdir> is one of the configuration sub-directories described in
  394. the following paragraph.
  395. NOTE: You must also copy avr-libc header files, perhaps like:
  396. cp -a /cygdrive/c/WinAVR/include/avr include/.
  397. 2. These configurations use the mconf-based configuration tool. To
  398. change a configurations using that tool, you should:
  399. a. Build and install the kconfig-mconf tool. See nuttx/README.txt
  400. see additional README.txt files in the NuttX tools repository.
  401. b. Execute 'make menuconfig' in nuttx/ in order to start the
  402. reconfiguration process.
  403. 3. By default, all configurations assume the NuttX Buildroot toolchain
  404. under Cygwin with Windows. This is easily reconfigured:
  405. CONFIG_HOST_WINDOWS=y
  406. CONFIG_WINDOWS_CYGWIN=y
  407. CONFIG_AVR_BUILDROOT_TOOLCHAIN=y
  408. Configuration Sub-Directories
  409. -----------------------------
  410. hello:
  411. The simple apps/examples/hello "Hello, World!" example.
  412. FLASH/SRAM Requirements (as of 6/16/2011):
  413. $ avr-nuttx-elf-size nuttx
  414. text data bss dec hex filename
  415. 24816 978 308 26102 65f6 nuttx
  416. Strings are in SRAM.