Summary:
- This commit changes spinlock APIs (spin_lock_irqsave/spin_unlock_irqrestore)
- In the previous implementation, the global spinlock (i.e. g_irq_spin) was used.
- This commit allows to use caller specific spinlock but also supports to use
g_irq_spin for backword compatibility (In this case, NULL must be specified)
Impact:
- None
Testing:
- Tested with the following configurations
- spresnse:wifi, spresense:wifi_smp
- esp32-devkitc:smp (QEMU), sabre6-quad:smp (QEMU)
- maxi-bit:smp (QEMU), sim:smp
- stm32f4discovery:wifi
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit replaces SHES related headers under stm32f4discovery
Impact:
- No impact
Testing:
- Build check only
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Summary:
- This commit adds adb configuration
Impact:
- stm32f4discovery:adb only
Testing:
- Tested with adb client on ubuntu18.04 x86_64
- adb shell works but still unstable
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
The following nxstyle errors are intentionally left.
* A table, not trivial to fix:
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:142:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:143:95: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:144:88: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:145:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:146:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:147:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:148:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:149:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:150:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:151:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:152:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:153:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:154:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:155:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:156:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:157:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:158:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:159:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:160:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:161:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:162:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:163:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:164:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:165:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:166:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:167:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:168:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:169:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:170:119: error: Long line found
* Identifiers like ASCII_a:
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:397:35: error: Mixed case identifier found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:651:16: error: Mixed case identifier found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:660:38: error: Mixed case identifier found
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>
There is a good case on sim platform:
When we input some cmd and click enter key to start application in terminal,
this context will change to application from IDLE loop. Althrough entey key '\r'
has been received to recv buffer and complete post semaphore of reader, but
pollnotify may not be called because context change. So when application run
poll function, because no events happend and poll enter wait, context will
again change to IDLE loop, this pollnotify of IDLE loop will run to send poll
events, poll function of applicaton will wake up. It's wrong!
Change-Id: I812a889f2e90781a9c3cb4b0251cccc4d32bebd1
Signed-off-by: dongjiuzhu <dongjiuzhu1@xiaomi.com>
and remove the special handling in the stack dump
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ia1ef9a427bd4c7f6cee9838d0445f29cfaca3998
1.Reduce the default size of task_group_s(~512B each task)
2.Scale better between simple and complex application
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ia872137504fddcf64d89c48d6f0593d76d582710
boards/arm/stm32/b-g474e-dpow1/scripts/ld.script.dfu:
* New file. Reserve up to 24KiB at the start of FLASH for a
bootloader.
boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs:
* When building with CONFIG_STM32_DFU, use the new ld.script.dfu
to leave room in FLASH for a bootloader.
boards/arm/stm32/b-g474e-dpow1/README.txt:
* "FLASH Bootloader Support": New section.
Summary:
- This commit refactors stm32_gs2200m.c
- gs2200m_irq_enable() and gs2200m_irq_disable() are now symmetric.
Impact:
- All use cases which use the gs2200m driver.
Testing:
- Tested with stm32f4discovery:wifi
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
to save the preserved space(1KB) and also avoid the heap overhead
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I694073f68e1bd63960cedeea1ddec441437be025
Change the preallocated message and descriptor from 32/24 to 4.
The total size is reduce from 1892 to 532
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I79d199465daef678986868f773876289859f42fc
since the maximum number of argument pass to wd_start in the whole
code base is 2 and change CONFIG_MAX_WDOGPARMS in some defconfig
from 1 to 2 oherwise pthread_condclockwait will fail
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ib6cb28b8c0722058849e7be916e164513431d21c
1.It make sense to let Toolchain.defs give the default value
2.The board can still change if the default isn't suitable
3.Avoid the same definition spread more than 200 Make.defs
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ic2649f1c7689bcf59c105ca8db61cad45b6e0e64
Make.defs under board folder can still overwrite the default as needed
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I1c300a8ace4b54d475ef8d398661ed65ca273a2e
so all boards support uClibc++/libc++ automatically
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ibe6fafbec57f7acb26ea6188a3e9923ea82295c5
otherwise the user is shocked that using cin/cout/cerr will crash the system
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I453427261f3e2a6e60f7dd2398f7d3bd1043a0d5
since cxx initialization is controlled by CONFIG_HAVE_CXXINITIALIZE now
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I39438dc3006d0a0b810052ecef50cd3c92f09d83
so the lower half driver don't need include the specific board.h
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Icf6638a6865bac42150b5957376e55909f041d40
so the lower half driver don't need include the specific board.h
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I2ff5c30049a5c5e8ee90baea56e9f4cb1a8a4f87
stm32_i2sdev_initialize to stm32_i2sbus_initiliaze, to be consistent
with the way other buses are initialized.
The stm32_i2sdev_initiliaze (similar to stm32_spidev_initialize for
example) is a board specific function that does any necessary
initialization that's board depedent.
This is a change suggested by Xiao Xiang in an email thread. Some make variables with depend on forking and shell and running a script to get the value of the variable. Using := we can force the calculation to occur only once. This leads to a small but consistent improvement in build performance.
This change really applies to ALL Make.defs files but is applied only to one here so that it can be thoroughly verified and possbily leveraged to other Make.defs files in the future.
boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs:
* Apply the recent build script changes introduced in the
following git commits:
- 7e5b0f81e9 and
- e83c1400b6
to this board. Namely, factor the definitions of ARCHINCLUDES
and ARCHXXINCLUDES out of CONFIG_CYGWIN_WINTOOL conditional,
and use new build variable BOARD_DIR to simplify ARCHSCRIPT.
Add support for the STM32G474 family of microcontrollers and the
B-G474E-DPOW1 Discovery Board, which features a STM32G474RET6.
This is a major pull request as it adds support for an entirely
new family of STM32. This support is implemented in
arch/arm/src/stm32 and shares implementation with other STM32
families supported by that code, such as the 'L15xx, 'F10xx,
'F20xx, 'F3xxx, and 'F4xxx.
boards/Kconfig:
* Make NuttX recognize the existence of b-g474e-dpow1,
the B-G474E-DPOW1 Discovery Board.
boards/arm/stm32/b-g474e-dpow1/Kconfig:
boards/arm/stm32/b-g474e-dpow1/README.txt:
boards/arm/stm32/b-g474e-dpow1/configs/nsh/defconfig:
boards/arm/stm32/b-g474e-dpow1/include/board.h:
boards/arm/stm32/b-g474e-dpow1/scripts/Make.defs:
boards/arm/stm32/b-g474e-dpow1/scripts/ld.script:
boards/arm/stm32/b-g474e-dpow1/src/.gitignore:
boards/arm/stm32/b-g474e-dpow1/src/Make.defs:
boards/arm/stm32/b-g474e-dpow1/src/b-g474e-dpow1.h:
boards/arm/stm32/b-g474e-dpow1/src/stm32_appinit.c:
boards/arm/stm32/b-g474e-dpow1/src/stm32_autoleds.c:
boards/arm/stm32/b-g474e-dpow1/src/stm32_boot.c:
boards/arm/stm32/b-g474e-dpow1/src/stm32_userleds.c:
* Add minimal support for the B-G474E-DPOW1 Discovery
Board. The board boots successfully through to the
NSH prompt. NSH runs and is responsive.
With big thanks for detailed code review and suggestions:
David Sidrane (davids5)
Mateusz Szafoni (raiden00)
Abdelatif Guettouche (Ouss4)