b88561299b
In the current compilation environment, the recursive assignment(=) for compile flags will be delayed until every file is actually need to be compile. For example: -------------------------------------------------------------------------------- arch/arm/src/Makefile: INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)chip} INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)common} INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)$(ARCH_SUBDIR)} INCLUDES += ${shell $(INCDIR) "$(CC)" $(TOPDIR)$(DELIM)sched} CPPFLAGS += $(INCLUDES) $(EXTRAFLAGS) CFLAGS += $(INCLUDES) $(EXTRAFLAGS) CXXFLAGS += $(INCLUDES) $(EXTRAFLAGS) AFLAGS += $(INCLUDES) $(EXTRAFLAGS) -------------------------------------------------------------------------------- All compilation options will be included recursively, which will be delayed until the compilation options are actually used: tools/Config.mk: -------------------------------------------------------------------------------- define COMPILE @echo "CC: $1" $(Q) $(CC) -c $(CFLAGS) $($(strip $1)_CFLAGS) $1 -o $2 endef -------------------------------------------------------------------------------- All compile flags to be reexecuted $(INCDIR) as long as one file needs to be compiled, but in fact, the compilation options have not changed in the current directory. So the we recommand to change the syntax of assignment From Recursive (=) To Simple (:=) In this way, we can ensure that all compilation options are expanded only once and reducing repeated works. Signed-off-by: chao.an <anchao@xiaomi.com> |
||
---|---|---|
.. | ||
configs | ||
include | ||
kernel | ||
scripts | ||
src | ||
Kconfig | ||
README.txt |
README ====== This README discusses issues unique to NuttX configurations for the STMicro STM32F769I-DISCO development board featuring the STM32F769NIH6 MCU. The STM32F769NIH6 is a 216MHz Cortex-M7 operating with 2048K Flash memory and 512Kb SRAM. The board features: - On-board ST-LINK/V2 for programming and debugging, - Mbed-enabled (mbed.org) - 4-inch 800x472 color LCD-TFT with capacitive touch screen - SAI audio codec - Audio line in and line out jack - Two ST MEMS microphones - SPDIF RCA input connector - Two pushbuttons (user and reset) - 512-Mbit Quad-SPI Flash memory - 128-Mbit SDRAM - Connector for microSD card - RF-EEPROM daughterboard connector - USB OTG HS with Micro-AB connectors - Ethernet connector compliant with IEEE-802.3-2002 and PoE Refer to the http://www.st.com website for further information about this board (search keyword: stm32f769i-disco) Contents ======== - STATUS - Development Environment - LEDs and Buttons - Serial Console - Configurations STATUS ====== 2019-06: PWM support has been tested as working. 2017-07: The basic NSH configuration is functional using a serial console on USART1, which is connected to the "virtual com port" of the ST/LINK USB adapter. 2017-07: STM32 F7 Ethernet appears to be functional, but has had only light testing. Work in progress: Use LCD over DSI interface, rest of board. Development Environment ======================= The Development environments for the STM32F769I-DISCO board are identical to the environments for other STM32F boards. For full details on the environment options and setup, see the README.txt file in the boards/arm/stm32f7/stm32f769i-disco directory. LEDs and Buttons ================ LEDs ---- The STM32F769I-DISCO board has numerous LEDs but only one, LD3 located near the reset button, that can be controlled by software. LD3 is controlled by PI1 which is also the SPI2_SCK at the Arduino interface. One end of LD3 is grounded so a high output on PI1 will illuminate the LED. This LED is 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 LD3 ------------------- ----------------------- ------ LED_STARTED NuttX has been started OFF LED_HEAPALLOCATE Heap has been allocated OFF LED_IRQSENABLED Interrupts enabled OFF LED_STACKCREATED Idle stack created ON LED_INIRQ In an interrupt N/C LED_SIGNAL In a signal handler N/C LED_ASSERTION An assertion failed N/C LED_PANIC The system has crashed FLASH Thus is LD3 is statically on, NuttX has successfully booted and is, apparently, running normally. If LD3 is flashing at approximately 2Hz, then a fatal error has been detected and the system has halted. Buttons ------- Pushbutton B1, labelled "User", is connected to GPIO PI11. A high value will be sensed when the button is depressed. Serial Console ============== Use the serial interface the ST/LINK provides to the USB host. Configurations ============== Common Configuration Information -------------------------------- Each STM32F769I-DISCO configuration is maintained in a sub-directory and can be selected as follow: tools/configure.sh stm32f769i-disco:<subdir> Where <subdir> is one of the sub-directories listed below. Configuration Directories ------------------------- nsh: --- Configures the NuttShell (NSH) located at apps/examples/nsh. The Configuration enables the serial interfaces on UART1. Otherwise nothing is enabled, so that config is a starting point for initial testing. Support for builtin applications is enabled, but in the base configuration no builtin applications are selected. 1. This config supports the PWM test (apps/examples/pwm) but this must be manually enabled by selecting: CONFIG_PWM=y : Enable the generic PWM infrastructure CONFIG_EXAMPLES_PWM=y : Enable the PWM example app And these for enabling the STM32 timer PWM channel: CONFIG_STM32F7_TIM1=y CONFIG_STM32F7_TIM1_PWM=y CONFIG_STM32F7_TIM1_CHANNEL=4 nsh-ehternet: --- Same as above but a lot more hardware peripherals enabled, in particular ethernet, as well as networking stuff.