464 lines
18 KiB
Plaintext
464 lines
18 KiB
Plaintext
README
|
|
======
|
|
|
|
This README discusses issues unique to NuttX configurations for the
|
|
ViewTool STM32F103/F107 V1.2 board. This board may be fitted with either
|
|
|
|
- STM32F107VCT6, or
|
|
- STM32F103VCT6
|
|
|
|
The board is vary modular with connectors for a variety of peripherals.
|
|
Features on the base board include:
|
|
|
|
- User and Wake-Up Keys
|
|
- LEDs
|
|
|
|
See http://www.viewtool.com/ for further information.
|
|
|
|
Contents
|
|
========
|
|
|
|
o User and Wake-Up keys
|
|
o LEDs
|
|
o Serial Console
|
|
- Console Configuration
|
|
- J5 - USART1
|
|
- PL-2013 USB-to-Serial Interface
|
|
- RS-232 Module
|
|
o USB Interface
|
|
o microSD Card Interface
|
|
o ViewTool DP83848 Ethernet Module
|
|
o Toolchains
|
|
- NOTE about Windows native toolchains
|
|
o Configurations
|
|
- Information Common to All Configurations
|
|
- Configuration Sub-directories
|
|
|
|
User and Wake-Up keys
|
|
=====================
|
|
|
|
All pulled high and will be sensed low when depressed.
|
|
|
|
SW2 PC11 Needs J42 closed
|
|
SW3 PC12 Needs J43 closed
|
|
SW4 PA0 Needs J44 closed
|
|
|
|
LEDs
|
|
====
|
|
|
|
There are four LEDs on the ViewTool STM32F103/F107 board that can be controlled
|
|
by software: LED1 through LED4. All pulled high and can be illuminated by
|
|
driving the output to low
|
|
|
|
LED1 PA6
|
|
LED2 PA7
|
|
LED3 PB12
|
|
LED4 PB13
|
|
|
|
These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is
|
|
defined. In that case, the usage by the board port is defined in
|
|
include/board.h and src/stm32_leds.c. The LEDs are used to encode OS-related
|
|
events as follows:
|
|
|
|
SYMBOL Meaning LED state
|
|
LED1 LED2 LED3 LED4
|
|
----------------- ----------------------- ---- ---- ---- ----
|
|
LED_STARTED NuttX has been started ON OFF OFF OFF
|
|
LED_HEAPALLOCATE Heap has been allocated OFF ON OFF OFF
|
|
LED_IRQSENABLED Interrupts enabled ON ON OFF OFF
|
|
LED_STACKCREATED Idle stack created OFF OFF ON OFF
|
|
LED_INIRQ In an interrupt N/C N/C N/C Soft glow
|
|
LED_SIGNAL In a signal handler N/C N/C N/C Soft glow
|
|
LED_ASSERTION An assertion failed N/C N/C N/C Soft glow
|
|
LED_PANIC The system has crashed N/C N/C N/C 2Hz Flashing
|
|
LED_IDLE MCU is is sleep mode Not used
|
|
|
|
After booting, LED1-3 are not longer used by the system and can be used for
|
|
other purposes by the application (Of course, all LEDs are available to the
|
|
application if CONFIG_ARCH_LEDS is not defined.
|
|
|
|
Serial Console
|
|
==============
|
|
|
|
Console Configuration
|
|
---------------------
|
|
The NuttX console is configured by default on USART1 at 115200 BAUD 8N1
|
|
(8-bits, not parity, one stop bit). These setting can, of course, easily
|
|
be changed by reconfiguring NuttX.
|
|
|
|
J5 - USART1
|
|
-----------
|
|
The boards come with a PL-2303 based USB-to-serial board. Also available
|
|
as an option is an RS-232 board. Both have the same pin out on a 6-pin
|
|
connector that mates with the upper row of J5.
|
|
|
|
PIN MODULE BOARD J5
|
|
--- ------ ---------------------------
|
|
1 5V 1 POWER Power jumper
|
|
2 GND 3 GND Ground
|
|
3 TXD 5 RXD1 PA10 USART1_RXD
|
|
4 RXD 7 TXD1 PA9 USART1_TXD
|
|
5 RTS? 9 CTS? PA12 USART1_RTS
|
|
6 CTS? 11 RTS? PA11 USART1_CTS
|
|
|
|
PL-2013 USB-to-Serial Interface
|
|
-------------------------------
|
|
|
|
J37 - CON4. Jumper Settings:
|
|
1 <-> 3 : Connects PA9 to the RXD1 output pin
|
|
2 <-> 4 : Connects PA10 to the TXD1 input pin
|
|
|
|
J35 - CON2. Jumper Setting:
|
|
Open. the PL2303 adapter receives its power from the USB host.
|
|
|
|
RS-232 Module
|
|
-------------
|
|
|
|
J37 - CON4. Jumper Settings:
|
|
1 <-> 3 : Connects PA9 to the RXD1 output pin
|
|
2 <-> 4 : Connects PA10 to the TXD1 input pin
|
|
|
|
J35 - CON2. Jumper Setting:
|
|
1 <-> 2 : Proves 3.3V to the RS-232 module.
|
|
|
|
USB Interface
|
|
=============
|
|
|
|
USB Connector
|
|
-------------
|
|
|
|
The Viewtool base board has a USB Mini-B connector. Only USB device can
|
|
be supported with this connector.
|
|
|
|
------------------------- ------------------------------------
|
|
USB Connector
|
|
J10 mini-USB GPIO CONFIGURATION(s)
|
|
--- --------- ----------- ------------------------------------
|
|
Pin Signal
|
|
--- --------- ----------- ------------------------------------
|
|
1 USB_VBUS VDD_USB (No sensing available)
|
|
2 OTG_DM PA11 GPIO_OTGFS_DM (F107) GPIO_USB_DM (F103)
|
|
3 OTG_DP PA12 GPIO_OTGFS_DP (F107) GPIO_USB_DP (F103)
|
|
4 OTG_ID PA10 GPIO_OTGFS_ID (F107)
|
|
5 Shield N/A N/A
|
|
6 Shield N/A N/A
|
|
7 Shield N/A N/A
|
|
8 Shield N/A N/A
|
|
9 Shield N/A N/A
|
|
PE11 USB_EN GPIO controlled soft pull-up
|
|
|
|
NOTES:
|
|
1. GPIO_OTGFS_VBUS (F107) should not be configured. No VBUS sensing
|
|
2. GPIO_OTGFS_SOF (F107) is not used
|
|
|
|
Configuration
|
|
-------------
|
|
To be provided. Some logic is in place, leveraged from other boards.
|
|
But this logic is not full implemented, not has it ever been built or\
|
|
tested.
|
|
|
|
microSD Card Interface
|
|
======================
|
|
|
|
microSD Connector
|
|
-----------------
|
|
|
|
----------------------------- ------------------------- --------------------------------
|
|
Connector J17 GPIO CONFIGURATION(s)
|
|
PIN SIGNAL LEGEND (no remapping) DP83848C Board
|
|
--- ------------- ----------- ------------------------- --------------------------------
|
|
1 VDD 3.3 N/A N/A 3.3
|
|
2 GND N/A N/A GND
|
|
3 PC8 SDIO_D0 GPIO_SDIO_D0 D0
|
|
4 PD2 SDIO_CMD GPIO_SDIO_CMD CMD
|
|
5 PC12 SDIO_CLK GPIO_SDIO_CK CLK
|
|
6 PC11 SDIO_D3 GPIO_SDIO_D3 D3
|
|
7 PC10 SDIO_D2 GPIO_SDIO_D2 D2
|
|
8 PC9 SDIO_D1 GPIO_SDIO_D1 D1
|
|
9 PA8 CD Board-specific GPIO input CD
|
|
--- ------------- ----------- ------------------------- --------------------------------
|
|
|
|
NOTES:
|
|
1. The STM32F107 does not support the SDIO/memory card interface. So the SD card
|
|
cannot be used with the STM32F107 (unless the pin-out just happens to match up
|
|
with an SPI-based card interface???)
|
|
|
|
Configuration
|
|
-------------
|
|
To be provided (for the STM32F103 only)
|
|
|
|
ViewTool DP83848 Ethernet Module
|
|
================================
|
|
|
|
Ethernet Connector
|
|
------------------
|
|
|
|
----------------------------- ------------------------ --------------------------------
|
|
Connector J2 GPIO CONFIGURATION(s)
|
|
PIN SIGNAL LEGEND (no remapping) DP83848C Board
|
|
--- ------------- ----------- ------------------------ --------------------------------
|
|
1 PA0 MII_CRS N/A N/C
|
|
2 PB11/SDA2 COM_TX_EN GPIO_ETH_RMII_TX_EN TX_EN
|
|
3 PA3/LED_G2 MII_COL N/A N/C
|
|
4 PB12/NSS2 COM_TXD0 GPIO_ETH_RMII_TXD0 TXD0
|
|
5 PA1 MII_RX_CLK GPIO_ETH_RMII_REF_CLK OSCIN
|
|
6 PB13/SCK2 COM_TXD1 GPIO_ETH_RMII_TXD1 TXD1
|
|
7 PB1/CD_RESET MII_RXD3 N/A N/C
|
|
8 PC4/LCDTP COM_RXD0 GPIO_ETH_RMII_RXD0 RXD0
|
|
9 PB0/BL_PWM MII_RXD2 N/A N/C
|
|
10 PC5 COM_RXD1 GPIO_ETH_RMII_RXD1 RXD1
|
|
11 PB8/CAN1_RX MII_TXD3 N/A N/C
|
|
12 PC1/LED_R1 COM_MDC GPIO_ETH_MDC MDC
|
|
13 PC2/LED_R2 MII_TXD2 N/A N/C
|
|
14 PA2/LED_G1 COM_MDIO GPIO_ETH_MDIO MDIO
|
|
15 PC3/ONEW MII_TX_CLK N/A N/C
|
|
16 PB10/SCL2 RX_ER N/A N/C
|
|
17 PD2 GPIO1 N/A N/C
|
|
18 PA7/MOSI1 COM_RX_DV GPIO_ETH_RMII_CRS_DV CRS_DIV
|
|
19 PD3 GPIO2 N/A N/C
|
|
20 PB5 COM_PPS_OUT N/A N/C
|
|
21 VDD 3.3 VDD_3.3 N/A 3.3V
|
|
22 VDD 3.3 VDD_3.3 N/A 3.3V
|
|
23 GND GND N/A GND
|
|
24 GND GND N/A GND
|
|
--- ------------- ----------- ------------------------ --------------------------------
|
|
|
|
NOTES:
|
|
1. RMII interface is used
|
|
2. There is a 50MHz clock on board the DP83848. No MCO clock need be provided.
|
|
|
|
Configuration
|
|
-------------
|
|
|
|
System Type -> STM32 Peripheral Support
|
|
CONFIG_STM32_ETHMAC=y : Enable Ethernet driver
|
|
|
|
System Type -> Ethernet MAC Configuration
|
|
CONFIG_STM32_RMII=y : Configuration RM-II DP83848C PHY
|
|
CONFIG_STM32_AUTONEG=y
|
|
CONFIG_STM32_PHYADDR=1
|
|
CONFIG_STM32_PHYSR=16
|
|
CONFIG_STM32_PHYSR_SPEED=0x0002
|
|
CONFIG_STM32_PHYSR_100MBPS=0x0000
|
|
CONFIG_STM32_PHYSR_MODE=0x0004
|
|
CONFIG_STM32_PHYSR_FULLDUPLEX=0x0004
|
|
CONFIG_STM32_RMII_EXTCLK=y
|
|
|
|
Device Drivers -> Networking Devices
|
|
CONFIG_NETDEVICES=y : More PHY stuff
|
|
CONFIG_ETH0_PHY_DP83848C=y
|
|
|
|
Networking (required)
|
|
CONFIG_NET=y : Enabled networking support
|
|
CONFIG_NET_MULTIBUFFER=y : Required by driver
|
|
CONFIG_NSH_NOMAC=y
|
|
|
|
Networking (recommended/typical)
|
|
CONFIG_NSOCKET_DESCRIPTORS=10 : Socket-related
|
|
CONFIG_NET_SOCKOPTS=y
|
|
|
|
CONFIG_NET_BUFSIZE=650 : Maximum packet size
|
|
CONFIG_NET_RECEIVE_WINDOW=650
|
|
CONFIG_NET_TCP_READAHEAD_BUFSIZE=650
|
|
|
|
CONFIG_NET_TCP=y : TCP support
|
|
CONFIG_NET_NTCP_READAHEAD_BUFFERS=8
|
|
|
|
CONFIG_NET_UDP=y : UDP support
|
|
CONFIG_NET_UDP_CONNS=8
|
|
|
|
CONFIG_NET_ICMP=y : ICMP support
|
|
CONFIG_NET_ICMP_PING=y
|
|
|
|
CONFIG_NSH_DRIPADDR=0x0a000001 : Network identity
|
|
CONFIG_NSH_IPADDR=0x0a000002
|
|
CONFIG_NSH_NETMASK=0xffffff00
|
|
|
|
Network Utilities (basic)
|
|
CONFIG_NETUTILS_TFTPC=y : Needed by NSH unless to disable TFTP commands
|
|
CONFIG_NETUTILS_DHCPC=y : Fun stuff
|
|
CONFIG_NETUTILS_TELNETD=y : Support for a Telnet NSH console
|
|
CONFIG_NSH_TELNET=y
|
|
|
|
(also FTP, TFTP, WGET, NFS, etc. if you also have a mass storage
|
|
device).
|
|
|
|
Toolchains
|
|
==========
|
|
|
|
NOTE about Windows native toolchains
|
|
------------------------------------
|
|
|
|
There are several limitations to using a Windows based toolchain in a
|
|
Cygwin environment. The three biggest are:
|
|
|
|
1. The Windows toolchain cannot follow Cygwin paths. Path conversions are
|
|
performed automatically in the Cygwin makefiles using the 'cygpath'
|
|
utility but you might easily find some new path problems. If so, check
|
|
out 'cygpath -w'
|
|
|
|
2. Windows toolchains cannot follow Cygwin symbolic links. Many symbolic
|
|
links are used in Nuttx (e.g., include/arch). The make system works
|
|
around these problems for the Windows tools by copying directories
|
|
instead of linking them. But this can also cause some confusion for
|
|
you: For example, you may edit a file in a "linked" directory and find
|
|
that your changes had no effect. That is because you are building the
|
|
copy of the file in the "fake" symbolic directory. If you use a\
|
|
Windows toolchain, you should get in the habit of making like this:
|
|
|
|
make clean_context all
|
|
|
|
An alias in your .bashrc file might make that less painful.
|
|
|
|
3. Dependencies are not made when using Windows versions of the GCC. This is
|
|
because the dependencies are generated using Windows pathes which do not
|
|
work with the Cygwin make.
|
|
|
|
MKDEP = $(TOPDIR)/tools/mknulldeps.sh
|
|
|
|
Configurations
|
|
==============
|
|
|
|
Information Common to All Configurations
|
|
----------------------------------------
|
|
Each SAM3U-EK configuration is maintained in a sub-directory and
|
|
can be selected as follow:
|
|
|
|
cd tools
|
|
./configure.sh viewtool-stm32f107/<subdir>
|
|
cd -
|
|
. ./setenv.sh
|
|
|
|
Before sourcing the setenv.sh file above, you should examine it and perform
|
|
edits as necessary so that TOOLCHAIN_BIN is the correct path to the directory
|
|
than holds your toolchain binaries.
|
|
|
|
And then build NuttX by simply typing the following. At the conclusion of
|
|
the make, the nuttx binary will reside in an ELF file called, simply, nuttx.
|
|
|
|
make
|
|
|
|
The <subdir> that is provided above as an argument to the tools/configure.sh
|
|
must be is one of the following.
|
|
|
|
NOTES:
|
|
|
|
1. These configurations use the mconf-based configuration tool. To
|
|
change any of these configurations using that tool, you should:
|
|
|
|
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
|
|
and misc/tools/
|
|
|
|
b. Execute 'make menuconfig' in nuttx/ in order to start the
|
|
reconfiguration process.
|
|
|
|
2. Unless stated otherwise, all configurations generate console
|
|
output on USART1.
|
|
|
|
3. Unless otherwise stated, the configurations are setup for
|
|
Cygwin under Windows:
|
|
|
|
Build Setup:
|
|
CONFIG_HOST_WINDOWS=y : Windows operating system
|
|
CONFIG_WINDOWS_CYGWIN=y : POSIX environment under windows
|
|
|
|
4. All of these configurations use the CodeSourcery for Windows toolchain
|
|
(unless stated otherwise in the description of the configuration). That
|
|
toolchain selection can easily be reconfigured using 'make menuconfig'.
|
|
Here are the relevant current settings:
|
|
|
|
System Type -> Toolchain:
|
|
CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : GNU EABI toolchain for windows
|
|
|
|
The setenv.sh file is available for you to use to set the PATH
|
|
variable. The path in the that file may not, however, be correct
|
|
for your installation.
|
|
|
|
See also the "NOTE about Windows native toolchains" in the section call
|
|
"GNU Toolchain Options" above.
|
|
|
|
4. These configurations all assume that the STM32F107VCT6 is mounted on
|
|
board. This is configurable; you can select the STM32F103VCT6 as an
|
|
alternative.
|
|
|
|
5. These configurations all assume that you are loading code using
|
|
something like the ST-Link v2 JTAG. None of these configurations are
|
|
setup to use the DFU bootloader but should be easily reconfigured to
|
|
use that bootloader is so desired.
|
|
|
|
Configuration Sub-directories
|
|
-----------------------------
|
|
|
|
netnsh:
|
|
|
|
This configuration directory provide the NuttShell (NSH) with
|
|
networking support.
|
|
|
|
NOTES:
|
|
1. This configuration will work only on the version the viewtool
|
|
board with the the STM32F107VCT6 installed. If you have a board
|
|
with the STM32F103VCT6 installed, please use the nsh configuration
|
|
described below.
|
|
|
|
2. There is no PHY on the base viewtool stm32f107 board. You must
|
|
also have the "ViewTool DP83848 Ethernet Module" installed on J2
|
|
in order to support networking.
|
|
|
|
3. Since networking is enabled, you will see some boot-up delays when
|
|
the network connection is established. These delays can be quite
|
|
large is no network is attached (A production design to bring up the
|
|
network asynchronously to avoid these start up delays).
|
|
|
|
4. This configuration uses the default USART1 serial console. That
|
|
is easily changed by reconfiguring to (1) enable a different
|
|
serial peripheral, and (2) selecting that serial peripheral as
|
|
the console device.
|
|
|
|
5. By default, this configuration is set up to build on Windows
|
|
under either a Cygwin or MSYS environment using a recent, Windows-
|
|
native, generic ARM EABI GCC toolchain (such as the CodeSourcery
|
|
toolchain). Both the build environment and the toolchain
|
|
selection can easily be changed by reconfiguring:
|
|
|
|
CONFIG_HOST_WINDOWS=y : Windows operating system
|
|
CONFIG_WINDOWS_CYGWIN=y : POSIX environment under windows
|
|
CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery for Windows
|
|
|
|
nsh:
|
|
|
|
This configuration directory provide the basic NuttShell (NSH).
|
|
|
|
NOTES:
|
|
1. This configuration will work with either the version of the board
|
|
with STM32F107VCT6 or STM32F103VCT6 installed. The default
|
|
configuration is for the STM32F107VCT6. To use this configuration
|
|
with a STM32F103VCT6, it would have to be modified as follows:
|
|
|
|
System Type -> STM32 Configuration Options
|
|
CONFIG_ARCH_CHIP_STM32F103VCT6=y
|
|
CONFIG_ARCH_CHIP_STM32F107VC=n
|
|
|
|
2. This configuration uses the default USART1 serial console. That
|
|
is easily changed by reconfiguring to (1) enable a different
|
|
serial peripheral, and (2) selecting that serial peripheral as
|
|
the console device.
|
|
|
|
3. By default, this configuration is set up to build on Windows
|
|
under either a Cygwin or MSYS environment using a recent, Windows-
|
|
native, generic ARM EABI GCC toolchain (such as the CodeSourcery
|
|
toolchain). Both the build environment and the toolchain
|
|
selection can easily be changed by reconfiguring:
|
|
|
|
CONFIG_HOST_WINDOWS=y : Windows operating system
|
|
CONFIG_WINDOWS_CYGWIN=y : POSIX environment under windows
|
|
CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery for Windows
|
|
|
|
highpri:
|
|
|
|
This configuration was used to verify the NuttX high priority, nested
|
|
interrupt feature. This is a board-specific test and probably not
|
|
of much interest now other than for reference.
|
|
|
|
This configuration targets the viewtool board with the STM32F103VCT6
|
|
mounted. It uses TIM6 to generated high rate interrupts for the test.
|