6a3c2aded6
* Simplify EINTR/ECANCEL error handling 1. Add semaphore uninterruptible wait function 2 .Replace semaphore wait loop with a single uninterruptible wait 3. Replace all sem_xxx to nxsem_xxx * Unify the void cast usage 1. Remove void cast for function because many place ignore the returned value witout cast 2. Replace void cast for variable with UNUSED macro |
||
---|---|---|
.. | ||
configs | ||
include | ||
scripts | ||
src | ||
Kconfig | ||
README.txt |
README ====== The Olimex STM32-E407 configuration is based on the configuration olimex-stm32-h407 and stm32f4discovery. Configurations ============== Instantiating Configurations ---------------------------- Each Olimex-STM32-E407 configuration is maintained in a sub-directory and can be selected as follow: tools/configure.sh [OPTIONS] olimex-stm32-e407:<subdir> Typical options include -l for a Linux host platform or -c for Cygwin host platform. See 'tools/configure.sh -h' for other options. And <subdir> is one of the sub-directories listed below. Compile Firmware ---------------- Once you've set the proper configuration, you just need to execute the next command: make If everything goes find, it should return the next two files: nuttx.hex nuttx.bin You can return more kinds of files by setting on menuconfig. Flashing the Board ----------------- You can flash this board in different ways, but the easiest way is using ARM-USB-TINY-H JTAG flasher device. Connect this device to the JTAG connector and type the next command: openocd -f interface/ftdi/olimex-arm-usb-tiny-h.cfg -f target/stm32f4x.cfg -c init -c "reset halt" -c "flash write_image erase nuttx.bin 0x08000000" Configuration Directories ------------------------- nsh: --- Configures the NuttShell (nsh) located at apps/examples/nsh. This configuration enables a console on UART2. Support for builtin applications is enabled, but in the base configuration no builtin applications are selected. usbnsh: ------ Configures the NuttShell (nsh) located at apps/examples/nsh. This configuration enables a console on USB_OTG1. Support for builtin applications is enabled, but in the base configuration no builtin applications are selected. netnsh: ------ Configures the NuttShell (nsh) located at examples/nsh. This configuration is focused on network testing. bmp180: ------ This is a configuration example for the BMP180 barometer sensor. This sensor works with I2C, you need to do the next connections: BMP180 VIN -> Board 3.3V BMP180 GND -> Board GND BMP180 SCL -> Board PB6 (Arduino header D1) BMP180 SDA -> Board PB7 (Arduino header D0) This example is configured to work with the USBNSH instead of UART NSH, so the console will be shown over the USB_OTG1 connector. On the console, type "ls /dev " and if the registration process goes fine, you should see a device called "press0". Now execute the app BMP180 to see the ambient pressure value. dac: --- This is a configuration example to use the DAC1 of the board. The DAC1 is attached to the PA4 pin (Arduino header D10). This example is configured to work with the USBNSH instead of UART NSH, so the console will be shown over the USB_OTG1 connector. On the console, type "ls /dev " and if the registration process goes fine, you should see a device called "dac0". Now execute the app dac put a value at the output. ina219: ------ This is a configuration example for the INA219 DC current sensor. This sensor works with I2C, you need to do the next connections: INA219 VIN -> Board 3.3V INA219 GND -> Board GND INA219 SCL -> Board PB6 (Arduino header D1) INA219 SDA -> Board PB7 (Arduino header D0) This example is configured to work with the USBNSH instead of UART NSH, so the console will be shown over the USB_OTG1 connector. On the console, type "ls /dev " and if the registration process goes fine, you should see a device called "ina219". Now execute the app ina219 to see the ambient pressure value. timer: ----- This configuration set the proper configuration to use the timer1 of the board. This example is configured to work with the USBNSH instead of UART NSH, so the console will be shown over the USB_OTG1 connector. On the console, type "ls /dev " and if the registration process goes fine, you should see a device called "timer1". mrf24j40-mac: ------------ This configuration set the proper configuration to set the 802.15.4 communication layer with the MRF24J40 radio. This radio works wit SPI, you need to do the next connections: MRF24J40 VCC -> Board 3.3V MRF24J40 GND -> Board GND MRF24J40 SCLK -> Board PA5 (Arduino header D13) MRF24J40 MISO -> Board PA6 (Arduino header D12) MRF24J40 MOSI -> Board PB5 (Arduino header D11) MRF24J40 CS -> Board PA4 (Arduino header D10) MRF24J40 INT -> Board PG12 (Arduino header D8) This example is configured to work with the USBNSH instead of UART NSH, so the console will be shown over the USB_OTG1 connector. Once you're on the console, you need to check if the initialization process was fine. To do so, you need to type "ls /dev" and you should see a device call "ieee0". At this point we need to set-up the network, follow the next steps: This is an example of how to configure a coordinator: i8sak /dev/ieee0 startpan cd:ab i8sak set chan 11 i8sak set saddr 42:01 i8sak acceptassoc This is an example of how to configure the endpoint: i8sak /dev/ieee0 i8sak set chan 11 i8sak set panid cd:ab i8sak set saddr 42:02 i8sak set ep_saddr 42:01 i8sak assoc mrf24j40-6lowpan: ---------------- This configuration set the proper configuration to use 6lowpan protocol with the MRF24J40 radio. This radio works with SPI, you need to do the next connections: MRF24J40 VCC -> Board 3.3V MRF24J40 GND -> Board GND MRF24J40 SCLK -> Board PA5 (Arduino header D13) MRF24J40 MISO -> Board PA6 (Arduino header D12) MRF24J40 MOSI -> Board PB5 (Arduino header D11) MRF24J40 CS -> Board PA4 (Arduino header D10) MRF24J40 INT -> Board PG12 (Arduino header D8) This example is configured to work with the USBNSH instead of UART NSH, so the console will be shown over the USB_OTG1 connector. Once you're on the console, you need to check if the initialization process was fine. To do so, you need to type "ls /dev" and you should see a device call "ieee0". At this point we need to set-up the network, follow the next steps: This is an example of how to configure a coordinator: i8sak wpan0 startpan cd:ab i8sak set chan 11 i8sak set saddr 42:01 i8sak acceptassoc When the association was complete, you need to bring-up the network: ifup wpan0 This is an example of how to configure the endpoint: i8sak wpan0 i8sak set chan 11 i8sak set panid cd:ab i8sak set saddr 42:02 i8sak set ep_saddr 42:01 i8sak assoc When the association was complete, you need to bring-up the network: ifup wpan0 If you execute the command "ifconfig", you will be able to see the info of the WPAN0 interface and see the assigned IP. This interface can be use with an UDP or TCP server/client application.