SAMA5D4-EK: Add the button test to the NSH configuration

This commit is contained in:
Gregory Nutt 2014-07-07 17:06:25 -06:00
parent 0b4573eea8
commit 28d23da04a
2 changed files with 77 additions and 17 deletions

View File

@ -1034,6 +1034,26 @@ Buttons and LEDs
Closing JP2 will bring PE13 to ground so 1) PE13 should have a weak pull-up, Closing JP2 will bring PE13 to ground so 1) PE13 should have a weak pull-up,
and 2) when PB2 is pressed, a low value will be senses. and 2) when PB2 is pressed, a low value will be senses.
Support for pollable buttons is enabled with:
CONFIG_ARCH_BUTTONS=y
For interrupt driven buttons, add:
CONFIG_ARCH_IRQBUTTONS=y
Program interfaces for button access are described in nuttx/include/nuttx/arch.h
There is an example that can be enabled to test button interrupts. That
example is enabled like:
CONFIG_EXAMPLES_BUTTONS=y
CONFIG_EXAMPLES_BUTTONS_MAX=0
CONFIG_EXAMPLES_BUTTONS_MIN=0
CONFIG_EXAMPLES_BUTTONS_NAME0="PB_USER"
CONFIG_EXAMPLES_IRQBUTTONS_MAX=0
CONFIG_EXAMPLES_IRQBUTTONS_MIN=0
LEDs LEDs
---- ----
There are 3 LEDs on the SAMA5D4-EK: There are 3 LEDs on the SAMA5D4-EK:
@ -3336,7 +3356,31 @@ Configurations
U-Boot> fatload mmc 0 0x20008000 nuttx.bin U-Boot> fatload mmc 0 0x20008000 nuttx.bin
U-Boot> go 0x20008040 U-Boot> go 0x20008040
5. This configuration supports /dev/null, /dev/zero, and /dev/random. 5. Board LEDs and buttons are supported as described under "Buttons and
LEDs". The interrupt button test is also enabled as an NSH built-in
commands. To run this test, you simply inter the command:
nsh>buttons [npresses]
The interrupt button test will log button press information to the
syslog. Since the RAMLOG is enabled, the SYSLOG output will be
captured to a circular buffer in ram and may be examined using the
NSH dmesg command:
nsh> buttons 2
nsh> dmesg
maxbuttons: 2
Attached handler at 200106f0 to button 0 [PB_USER], oldhandler:0
IRQ:81 Button 0:PB_USER SET:01:
PB_USER depressed
IRQ:81 Button 0:PB_USER SET:00:
PB_USER released
IRQ:81 Button 0:PB_USER SET:01:
PB_USER depressed
IRQ:81 Button 0:PB_USER SET:00:
PB_USER released
6. This configuration supports /dev/null, /dev/zero, and /dev/random.
CONFIG_DEV_NULL=y : Enables /dev/null CONFIG_DEV_NULL=y : Enables /dev/null
CONFIG_DEV_ZERO=y : Enabled /dev/zero CONFIG_DEV_ZERO=y : Enabled /dev/zero
@ -3348,12 +3392,13 @@ Configurations
CONFIG_SAMA5_TRNG=y : Enables the TRNG peripheral CONFIG_SAMA5_TRNG=y : Enables the TRNG peripheral
CONFIG_DEV_RANDOM=y : Enables /dev/random CONFIG_DEV_RANDOM=y : Enables /dev/random
6. This configuration has support for NSH built-in applications enabled. 7. This configuration has support for NSH built-in applications enabled.
Only one built-in application is included by default, however: The Two built-in applications are included by default: (1) The I2C Tool.
I2C Tool. See the section above entitle "I2C Tool" and the note with See the section above entitle "I2C Tool" and the note with regard to
regar to I2C below. I2C below. And (2) the interrupting button test as described above
in these notes.
7. This configuration has support for the FAT, ROMFS, and PROCFS file 8. This configuration has support for the FAT, ROMFS, and PROCFS file
systems built in. systems built in.
The FAT file system includes long file name support. Please be aware The FAT file system includes long file name support. Please be aware
@ -3374,7 +3419,7 @@ Configurations
CONFIG_FS_PROCFS=y : Enable PROCFS file system CONFIG_FS_PROCFS=y : Enable PROCFS file system
8. An NSH start-up script is provided by the ROMFS file system. The ROMFS 9. An NSH start-up script is provided by the ROMFS file system. The ROMFS
file system is mounted at /etc and provides: file system is mounted at /etc and provides:
|- dev/ |- dev/
@ -3478,7 +3523,7 @@ Configurations
SD RF TYP FLAGS SD RF TYP FLAGS
9. The Real Time Clock/Calendar (RTC) is enabled in this configuration. 10. The Real Time Clock/Calendar (RTC) is enabled in this configuration.
See the section entitled "RTC" above for detailed configuration See the section entitled "RTC" above for detailed configuration
settings. settings.
@ -3494,7 +3539,7 @@ Configurations
will need to install a battery in the battery holder (J12) and close will need to install a battery in the battery holder (J12) and close
the jumper, JP13. the jumper, JP13.
10. Support for HSMCI0 is built-in by default. The SAMA4D4-EK provides 11. Support for HSMCI0 is built-in by default. The SAMA4D4-EK provides
two SD memory card slots: (1) a full size SD card slot (J10), and two SD memory card slots: (1) a full size SD card slot (J10), and
(2) a microSD memory card slot (J11). The full size SD card slot (2) a microSD memory card slot (J11). The full size SD card slot
connects via HSMCI0; the microSD connects vi HSMCI1. Support for connects via HSMCI0; the microSD connects vi HSMCI1. Support for
@ -3516,7 +3561,7 @@ Configurations
If these behaviors are a problem for you, then you may want to If these behaviors are a problem for you, then you may want to
disable HSMCI0 as well. disable HSMCI0 as well.
11. Networking is supported via EMAC0. See the "Networking" section 12. Networking is supported via EMAC0. See the "Networking" section
above for detailed configuration settings. DHCP is not used in above for detailed configuration settings. DHCP is not used in
this configuration; rather, a hard-coded IP address of 10.0.0.2 is this configuration; rather, a hard-coded IP address of 10.0.0.2 is
used with a netmask of 255.255.255.0. The host is assumed to be used with a netmask of 255.255.255.0. The host is assumed to be
@ -3531,13 +3576,13 @@ Configurations
See the "kludge" for EMAC that is documented in the To-Do list at See the "kludge" for EMAC that is documented in the To-Do list at
the end of this README file. the end of this README file.
12. I2C Tool. This configuration enables TWI0 (only) as an I2C master 13. I2C Tool. This configuration enables TWI0 (only) as an I2C master
device. This configuration also supports the I2C tool at device. This configuration also supports the I2C tool at
apps/system/i2c that can be used to peek and poke I2C devices on the apps/system/i2c that can be used to peek and poke I2C devices on the
TIW0 bus. See the discussion above under "I2C Tool" for detailed TIW0 bus. See the discussion above under "I2C Tool" for detailed
configuration settings. configuration settings.
13. Support the USB low-, high- and full-speed OHCI host driver is enabled 14. Support the USB low-, high- and full-speed OHCI host driver is enabled
enabled with the NuttX configuration file as described in the section enabled with the NuttX configuration file as described in the section
above entitled "USB High-Speed Host". Only port B and port C, the above entitled "USB High-Speed Host". Only port B and port C, the
larger "Type A" connectors, are enabled; port A (the smaller OTG larger "Type A" connectors, are enabled; port A (the smaller OTG
@ -3561,16 +3606,16 @@ Configurations
idea because you cannot type the 'dmesg' command to view the RAMLOG idea because you cannot type the 'dmesg' command to view the RAMLOG
without a keyboard attached.] without a keyboard attached.]
14. Support the USB high-speed USB device driver (UDPHS) is not enabled by 15. Support the USB high-speed USB device driver (UDPHS) is not enabled by
default but could be enabled by changing the NuttX configuration file as default but could be enabled by changing the NuttX configuration file as
described above in the section entitled "USB High-Speed Device." described above in the section entitled "USB High-Speed Device."
15. The SAMA5D4-EK includes for an AT25 serial DataFlash. That support is 16. The SAMA5D4-EK includes for an AT25 serial DataFlash. That support is
NOT enabled in this configuration. Support for that serial FLASH could NOT enabled in this configuration. Support for that serial FLASH could
be enabled by modifying the NuttX configuration as described above in be enabled by modifying the NuttX configuration as described above in
the paragraph entitled "AT25 Serial FLASH". the paragraph entitled "AT25 Serial FLASH".
16. This example can be configured to exercise the watchdog timer test 17. This example can be configured to exercise the watchdog timer test
(apps/examples/watchdog). See the detailed configuration settings in (apps/examples/watchdog). See the detailed configuration settings in
the section entitled "Watchdog Timer" above. the section entitled "Watchdog Timer" above.

View File

@ -362,8 +362,9 @@ CONFIG_ARCH_BOARD="sama5d4-ek"
CONFIG_ARCH_HAVE_LEDS=y CONFIG_ARCH_HAVE_LEDS=y
CONFIG_ARCH_LEDS=y CONFIG_ARCH_LEDS=y
CONFIG_ARCH_HAVE_BUTTONS=y CONFIG_ARCH_HAVE_BUTTONS=y
# CONFIG_ARCH_BUTTONS is not set CONFIG_ARCH_BUTTONS=y
CONFIG_ARCH_HAVE_IRQBUTTONS=y CONFIG_ARCH_HAVE_IRQBUTTONS=y
CONFIG_ARCH_IRQBUTTONS=y
CONFIG_NSH_MMCSDMINOR=0 CONFIG_NSH_MMCSDMINOR=0
CONFIG_NSH_MMCSDSLOTNO=0 CONFIG_NSH_MMCSDSLOTNO=0
@ -708,6 +709,7 @@ CONFIG_NET_ICMP_PING=y
# #
CONFIG_NET_ARP=y CONFIG_NET_ARP=y
CONFIG_NET_ARPTAB_SIZE=16 CONFIG_NET_ARPTAB_SIZE=16
CONFIG_NET_ARP_MAXAGE=120
CONFIG_NET_ARP_IPIN=y CONFIG_NET_ARP_IPIN=y
# #
@ -868,7 +870,19 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024
# #
# Examples # Examples
# #
# CONFIG_EXAMPLES_BUTTONS is not set CONFIG_EXAMPLES_BUTTONS=y
CONFIG_EXAMPLES_BUTTONS_MIN=0
CONFIG_EXAMPLES_BUTTONS_MAX=0
CONFIG_EXAMPLES_IRQBUTTONS_MIN=0
CONFIG_EXAMPLES_IRQBUTTONS_MAX=0
CONFIG_EXAMPLES_BUTTONS_NAME0="PB_USER"
CONFIG_EXAMPLES_BUTTONS_NAME1="Button 1"
CONFIG_EXAMPLES_BUTTONS_NAME2="Button 2"
CONFIG_EXAMPLES_BUTTONS_NAME3="Button 3"
CONFIG_EXAMPLES_BUTTONS_NAME4="Button 4"
CONFIG_EXAMPLES_BUTTONS_NAME5="Button 5"
CONFIG_EXAMPLES_BUTTONS_NAME6="Button 6"
CONFIG_EXAMPLES_BUTTONS_NAME7="Button 7"
# CONFIG_EXAMPLES_CAN is not set # CONFIG_EXAMPLES_CAN is not set
# CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CONFIGDATA is not set
# CONFIG_EXAMPLES_CPUHOG is not set # CONFIG_EXAMPLES_CPUHOG is not set
@ -1054,6 +1068,7 @@ CONFIG_NSH_FATSECTSIZE=512
CONFIG_NSH_FATNSECTORS=1024 CONFIG_NSH_FATNSECTORS=1024
CONFIG_NSH_FATMOUNTPT="/tmp" CONFIG_NSH_FATMOUNTPT="/tmp"
CONFIG_NSH_CONSOLE=y CONFIG_NSH_CONSOLE=y
# CONFIG_NSH_USBKBD is not set
# #
# USB Trace Support # USB Trace Support