Alan C. Assis
34c144ad13
Fix many coding styles issues
2020-08-20 15:15:07 -06:00
Alan C. Assis
7d88f1e9cf
Fix the introduced long line
2020-08-20 15:15:07 -06:00
Alan C. Assis
5b719daf69
Fix issues reported in the pull request and update defconfig
2020-08-20 15:15:07 -06:00
chenwen
1e9ef469dc
xtensa/esp32: Add functions to switch CPU frequency from 80MHz to 240Mhz
2020-08-20 15:15:07 -06:00
Xiang Xiao
acca9fcc3b
sched/wdog: Remove MAX_WDOGPARMS and related stuff
...
since the variable arguments are error prone and seldom used.
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-14 08:19:50 -06:00
Xiang Xiao
a0ce81d659
sched/wdog: Don't dynamically allocate wdog_s
...
to save the preserved space(1KB) and also avoid the heap overhead
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I694073f68e1bd63960cedeea1ddec441437be025
2020-08-11 12:28:55 -06:00
Xiang Xiao
f618de9c97
Fix nxstyle warning
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-08 17:30:26 -03:00
Alan C. Assis
6ea7b29088
Add ESP32 Ethernet device driver
...
This driver was implemented by Dong Heng<dongheng@espressif.com>
and reviewed by Alan Carvalho de Assis
2020-08-06 23:35:16 +01:00
Alan C. Assis
c06d3e1b0a
xtensa/esp32: Add SPI Flash device driver
...
ESP32 runs code in a SPI Flash, so users can also use it to store
data directly or mount some parts into a filesystem.
The SPI Flash usually use SPI0.
This driver was implemented by Dong Heng dongheng@espressif.com
and modified to fix coding style by Alan Carvalho de Assis.
2020-07-31 23:37:30 +01:00
Alan C. Assis
cb1d11a499
ESP32: Add driver support to I2C
...
This driver was implemented by Dong Heng <dongheng@espressif.com>
and modified to fix coding style by Alan Carvalho de Assis.
Co-authored-by: Abdelatif Guettouche <abdelatif.guettouche@gmail.com>
2020-07-28 14:31:55 +01:00
SPRESENSE
e249a2f82f
Makefile: Fix Make.dep not updated by config changes
...
Make.dep file should be updated by .config changed after first make.
There are 2 cases affected for this problem:
1) Add source files by config symbol
2) Include header files in #ifdef directive
These 2 cases may not be included in Make.dep and this may prevent the
differential build from working correctly.
2020-07-28 03:59:45 -05:00
Xiang Xiao
5efa93ec26
arch/Toolchain.defs: Change all ARCROSSDEV to CROSSDEV
...
ARCROSSDEV always equals to CROSSDEV, so it is no reason to keep ARCROSSDEV.
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-07-20 23:50:59 -07:00
Alan C. Assis
ba274b999e
Fix small formatting issues caused by VIM macro edition
2020-07-20 21:02:41 +01:00
Xiang Xiao
b329e2377d
boards: Move toolchain related variables to Toolchain.defs
...
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
2020-07-20 17:10:37 +01:00
Xiang Xiao
47f2090410
arch: Change --print-file-name=libgcc.a to --print-libgcc-file-name
...
Since the new option is more compatible with clang
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-07-19 18:26:31 -07:00
Alan C. Assis
79a3fd1932
ESP32: Add driver support to SPI Master and Slave
...
This driver was implemented by Dong Heng <dongheng@espressif.com>
and modified to fix coding style by Alan Carvalho de Assis.
2020-07-19 21:26:58 +01:00
Xiang Xiao
d6827cab60
arch: up_assert shouldn't call exit directly
...
since exit will be only callable from userspace and change
the 1st argument from "const uint8_t *" to "const char *"
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I86487d57210ab63109148232da71dbc4d60a563b
2020-07-19 01:21:36 +01:00
Xiang Xiao
4910d43ab0
build: Move the toolchain library setting to the common place
...
so all boards support C++ automatically
2020-07-16 15:38:08 -03:00
Nakamura, Yuuichi
f392d246d3
Fix note driver initialization
2020-07-13 00:46:55 -05:00
Xiang Xiao
924ba84737
arch: call *_getsp in up_assert and board_crashdump
...
and remove the static up_getsp
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-07-09 13:51:09 +01:00
Xiang Xiao
05f6445493
arch: Move *_getsp to the common place arch/arch.h
...
so other place can get the stack pointer easily
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-07-09 13:51:09 +01:00
chao.an
332e5481ee
arch/stackframe: fix heap buffer overflow
...
ASAN trace:
...
==32087==ERROR: AddressSanitizer: heap-buffer-overflow on address 0xf4502120 at pc 0x56673ca3 bp 0xff9b6a08 sp 0xff9b69f8
WRITE of size 1 at 0xf4502120 thread T0
#0 0x56673ca2 in strcpy string/lib_strcpy.c:64
0xf4502120 is located 0 bytes to the right of 8224-byte region [0xf4500100,0xf4502120)
allocated by thread T0 here:
#0 0xf7a60f54 in malloc (/usr/lib32/libasan.so.4+0xe5f54)
#1 0x5667725d in up_create_stack sim/up_createstack.c:135
#2 0x56657ed8 in nxthread_create task/task_create.c:125
#3 0x566580bb in kthread_create task/task_create.c:297
#4 0x5665935f in work_start_highpri wqueue/kwork_hpthread.c:149
#5 0x56656f31 in nx_workqueues init/nx_bringup.c:181
#6 0x56656fc6 in nx_bringup init/nx_bringup.c:436
#7 0x56656e95 in nx_start init/nx_start.c:809
#8 0x566548d4 in main sim/up_head.c:95
#9 0xf763ae80 in __libc_start_main (/lib/i386-linux-gnu/libc.so.6+0x18e80)
CALLSTACK:
#8 0xf79de7a5 in __asan_report_store1 () from /usr/lib32/libasan.so.4
#9 0x565fd4d7 in strcpy (dest=0xf4a02121 "", src=0xf5c00895 "k") at string/lib_strcpy.c:64
#10 0x565e4eb2 in nxtask_setup_stackargs (tcb=0xf5c00810, argv=0x0) at task/task_setup.c:570
#11 0x565e50ff in nxtask_setup_arguments (tcb=0xf5c00810, name=0x5679e580 "hpwork", argv=0x0) at task/task_setup.c:714
#12 0x565e414e in nxthread_create (name=0x5679e580 "hpwork", ttype=2 '\002', priority=224, stack=0x0, stack_size=8192, entry=0x565e54e1 <work_hpthread>, argv=0x0) at task/task_create.c:143
#13 0x565e42e3 in kthread_create (name=0x5679e580 "hpwork", priority=224, stack_size=8192, entry=0x565e54e1 <work_hpthread>, argv=0x0) at task/task_create.c:297
#14 0x565e5557 in work_start_highpri () at wqueue/kwork_hpthread.c:149
#15 0x565e3e32 in nx_workqueues () at init/nx_bringup.c:181
#16 0x565e3ec7 in nx_bringup () at init/nx_bringup.c:436
#17 0x565e3d96 in nx_start () at init/nx_start.c:809
#18 0x565e3195 in main (argc=1, argv=0xffe6b954, envp=0xffe6b95c) at sim/up_head.c:95
Change-Id: I096f7952aae67d055daa737e967242eb217ef8ac
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-06-15 07:19:41 -06:00
Xiang Xiao
4fbbd2e3bf
arch: Move PRIxMAX and SCNxMAX definition to include/stdint.h
...
like other related macro(e.g. INTMAX_MIN, INTMAX_MAX...)
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I8863599960b1a9b1c22ae9c35735a379a4c745b0
2020-06-10 08:24:47 +02:00
Xiang Xiao
7758eb8658
arch: Define INTx_C and UINTx_C macro
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ia50ea8764880fabd3d878c95328632c761be6b43
2020-06-10 08:24:47 +02:00
Xiang Xiao
b4bd9427f7
arch: Rename _exit to up_exit to follow the naming convention
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I2779a2a3ccb5426fe78714fdcc629b8dfbb7aaf6
2020-06-04 22:20:45 +01:00
Xiang Xiao
85b859fb8d
arch: _exit should't call nxsched_resume_scheduler twice in SMP mode
...
utilize the call inside nxtask_exit instead, also move
nxsched_suspend_scheduler to nxtask_exit for symmetry
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I219fc15faf0026e452b0db3906aa40b40ac677f3
2020-06-04 22:20:45 +01:00
Gregory Nutt
82debdc213
Make task_init() and task_activate() internal OS functions.
...
-Move task_init() and task_activate() prototypes from include/sched.h to include/nuttx/sched.h. These are internal OS functions and should not be exposed to the user.
-Remove references to task_init() and task_activate() from the User Manual.
-Rename task_init() to nxtask_init() since since it is an OS internal function
-Rename task_activate() to nxtask_activate since it is an OS internal function
2020-05-25 23:54:45 +01:00
Xiang Xiao
7e5b0f81e9
build: Replace -I with INCDIR
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 20:20:12 +01:00
Xiang Xiao
23668a4b9b
build: Remove the empty variable assignment
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 08:24:13 -06:00
Xiang Xiao
dd61d3d9f9
build: Remve the unnecessary .gitignore
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-23 18:00:40 +01:00
Xiang Xiao
1a95cce1a3
build: Move .config check to the top Makefile
...
remove the workaround to handle the inexistence of .config/Make.defs
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-20 17:57:34 +01:00
Xiang Xiao
567962bd62
build: Move the extension definition to common place
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-19 19:23:18 +01:00
Xiang Xiao
bd656888f2
build: Replace WINTOOL with CYGWIN_WINTOOL Kconfig
...
so the correct value can be determinated by Kconfig system automatically
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-18 15:02:55 -06:00
chao.an
05ebb39998
arch: complete logic in create/use stack to support stack coloration.
...
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-05-18 07:30:46 -06:00
chao.an
86a412d65a
arch/stack: fix check stack breakage
...
remove the TLS alignment check
Regression by:
--------------------------------------------------------
commit a6da3c2cb6
Author: Ouss4 <abdelatif.guettouche@gmail.com>
Date: Thu May 7 18:50:07 2020 +0100
arch/*/*_checkstack.c: Get aligned address only when
CONFIG_TLS_ALIGNED is enabled.
--------------------------------------------------------
commit c2244a2382
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Thu May 7 09:46:47 2020 -0600
Remove CONFIG_TLS
A first step in implementing the user-space error is
force TLS to be enabled at all times. It is no longer optional
Signed-off-by: chao.an <anchao@xiaomi.com>
2020-05-18 07:27:17 -06:00
Gregory Nutt
f92dba212d
sched/sched/sched.h: Make naming of all internal names consistent:
...
1. Add internal scheduler functions should begin with nxsched_, not sched_
2. Follow the consistent naming patter of https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions
2020-05-09 16:58:42 -03:00
Gregory Nutt
4b44b628ea
Run nxstyle against all .c and .h files modified by this PR.
...
All complaints fixed except for those that were not possible to fix:
- Used of Mixed case identifier in ESP32 files. These are references to Expressif ROM functions which are outside of the scope of NuttX.
2020-05-09 14:19:08 -03:00
Gregory Nutt
a4218e2144
include/nuttx/sched.h: Make naming of all internal names consistent:
...
1. Add internal scheduler functions should begin with nxsched_, not sched_
2. Follow the consistent naming patter of https://cwiki.apache.org/confluence/display/NUTTX/Naming+of+OS+Internal+Functions
2020-05-09 14:19:08 -03:00
Gregory Nutt
3dca5eba15
Completes the Implementation of the TLS-based errno
...
- Remove per-thread errno from the TCB structure (pterrno)
- Remove get_errno() and set_errno() as functions. The macros are still available as stubs and will be needed in the future if we need to access the errno from a different address environment (KERNEL mode).
- Add errno value to the tls_info_s structure definitions
- Move sched/errno to libs/libc/errno. Replace old TCB access to the errno with TLS access to the errno.
2020-05-07 23:11:34 +01:00
Ouss4
a6da3c2cb6
arch/*/*_checkstack.c: Get aligned address only when CONFIG_TLS_ALIGNED is
...
enabled.
2020-05-07 12:04:51 -06:00
Gregory Nutt
c2244a2382
Remove CONFIG_TLS
...
A first step in implementing the user-space error is force TLS to be enabled at all times. It is no longer optional
2020-05-07 12:04:16 -06:00
Ouss4
a4dd967440
arch/: Implement up_tls_info() for the rest of the architectures.
2020-05-06 21:56:40 -06:00
Ouss4
1e3ec6ecd0
arch/: Implement Thread Local Storage for the rest of the architectures.
...
The change consisted on modifying *_usestack.c and *_createstack.c
2020-05-06 21:56:40 -06:00
Xiang Xiao
94bb2e05bb
syslog: Code outside libc shouldn't call nx_vsyslog directly
...
since nx_vsyslog is the implementation detail
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-06 20:53:11 -06:00
Xiang Xiao
eca7059785
Refine __KERNEL__ and CONFIG_BUILD_xxx usage in the code base
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-01 10:43:47 -03:00
liuhaitao
459ad99373
Use EXTRAFLAGS instead of EXTRADEFINES to be used by make via command line
...
So call 'make EXTRAFLAGS=-Wno-cpp' could suppress the warnings with pre-processor
directive #warning in GCC.
Change-Id: Iaa618238924c9969bf91db22117b39e6d2fc9bb6
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2020-04-11 08:31:08 -06:00
ligd
231ad202ee
global change: repace sched_xfree() to kxmm_free()
...
Changes:
sched_xfree() => kxmm_free()
remove garbage related APIs
remove ARCH_HAVE_GARBAGE
Cause garbage feature move to mm_heap, then don't need
garbage anymore.
Change-Id: If310790a3208155ca8ab319e8d038cb6ff92c518
Signed-off-by: ligd <liguiding@fishsemi.com>
2020-04-09 10:29:28 -06:00
Alin Jerpelea
425e6c28dc
arch: xtensa: esp32: nxstyle fixes ( #753 )
...
esp32 nxstyle fixes
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2020-04-08 08:28:17 -06:00
hartmannathan
bfc153ca27
Fix typos in comments and documentation ( #750 )
...
* Fix typos in comments and documentation
2020-04-08 06:45:35 -06:00
Nathan Hartman
679b4fbee2
arch: Fix included directed -> included directly
...
This typo had been copied and pasted into numerous irq and syscall
headers.
2020-04-05 22:31:15 +01:00
YAMAMOTO Takashi
4ddb457c3e
Fix a typo in comments
2020-04-01 00:03:31 +08:00
YAMAMOTO Takashi
f8f5830410
xtensa: Implement CONFIG_ARCH_IDLE_CUSTOM
2020-03-31 15:50:04 +08:00
YAMAMOTO Takashi
123b3d92df
xtensa: Check XCHAL_HAVE_INTERRUPTS for waiti
2020-03-31 14:32:07 +08:00
YAMAMOTO Takashi
b9bf9c9a2b
xtensa: Save PS correctly in coproc handler
...
"EPS" is not a real register. It's just a base value of EPS_{2..7}.
2020-03-31 14:31:31 +08:00
YAMAMOTO Takashi
d2a6e56308
xtensa: Save PS correctly in double exception handler
...
"EPS" is not a real register. It's just a base value of EPS_{2..7}.
2020-03-31 14:31:31 +08:00
YAMAMOTO Takashi
18d3fa9eea
xtensa: Save PS correctly in syscall handler
...
"EPS" is not a real register. It's just a base value of EPS_{2..7}.
2020-03-31 14:31:31 +08:00
YAMAMOTO Takashi
1ffa009c8b
Revert "Don't generate .depend anymore"
...
This reverts commit 79af7fbf4e
.
Because:
* btashton reported some issues in local builds:
https://github.com/apache/incubator-nuttx/pull/603#issuecomment-602264860
* this might be related to the current CI breakage:
> /bin/sh: 1: /__w/incubator-nuttx/incubator-nuttx/nuttx/tools/mkdeps: not found
2020-03-22 23:07:29 -05:00
Xiang Xiao
79af7fbf4e
Don't generate .depend anymore
2020-03-22 18:15:29 +00:00
Masayuki Ishikawa
6baebcecc4
arch: esp32: Fix compile error for smp
2020-03-19 19:40:18 -06:00
Nathan Hartman
a5e643b0cd
Fix typos in comments and documentation.
2020-03-16 20:01:11 -06:00
YAMAMOTO Takashi
f4e7845b85
esp32: emulate byte access for module text
...
Tested on ESP-EYE.
2020-03-16 07:54:49 -06:00
YAMAMOTO Takashi
855751b534
Introduce instruction memory allocator
...
Necessary for dlfcn etc on ESP32, which has separate memory regions
for instruction and data.
known issues/todo
* consider something similar to dual heaps for PROTOECTED
* consider to adapt binfmt as well
2020-03-16 07:54:49 -06:00
YAMAMOTO Takashi
03a916acb8
Kconfig: Add kconfig options for module text allocator
...
Enable it for ESP32.
2020-03-16 07:54:49 -06:00
YAMAMOTO Takashi
e135c938d2
xtensa: Implement a few relocations
2020-03-16 07:54:49 -06:00
YAMAMOTO Takashi
8657305883
arch/xtensa/include/elf.h: Initial version
2020-03-16 07:54:49 -06:00
YAMAMOTO Takashi
5a716b799b
xtensa_user_handler: rsync after wsr.ps
2020-03-16 07:31:46 -05:00
YAMAMOTO Takashi
3b528c6010
xtensa_user_handler: Save PS correctly
...
"EPS" is not a real register. It's just a base value of EPS_{2..7}.
2020-03-16 19:13:33 +09:00
YAMAMOTO Takashi
951cfbd1d5
xtensa_user_handler: Fix registers in comments
2020-03-16 05:08:43 -05:00
YAMAMOTO Takashi
7aebcc4bf6
xtensa_user_handler: Fix registers in comments
2020-03-16 02:24:16 -05:00
YAMAMOTO Takashi
23db3b2a48
ESP32: Use __asm__ __volatile__ for inline assembly
2020-03-13 19:06:15 -06:00
YAMAMOTO Takashi
3a03a307b9
arch/xtensa/src/common/xtensa_abi.h: nxstyle fixes
...
The remaining errors:
Operator/assignment must be preceded with whitespace
I didn't fix them because they are in assembly code, which
nxstyle doesn't understand.
2020-03-13 18:58:04 -06:00
YAMAMOTO Takashi
086e8ffb12
arch/xtensa/src/esp32/esp32_cpustart.c: nxstyle fixes
...
The remaining errors:
Mixed case identifier found
I didn't fix them because they were on ROM symbols,
which are not supposed to obey NuttX's coding style.
2020-03-13 18:51:26 -06:00
YAMAMOTO Takashi
9aec40744c
xtensa_hostfs.c: Change the license to Apache 2.0
...
This file is based on arch/arm/src/common/up_hostfs.c.
The license change was ok'ed by the author. (@xiaoxiang781216)
2020-03-12 09:03:31 -05:00
YAMAMOTO Takashi
7a06ff0392
xtensa: hostfs using simcall
...
Tested on qemu -semihosting
2020-03-12 09:03:31 -05:00
YAMAMOTO Takashi
c18d7dc434
xtensa: Implement simcall
2020-03-12 09:03:31 -05:00
YAMAMOTO Takashi
7774cdd7aa
Appease many of nxstyle errors for esp32 related files
...
I skipped the following files because they were not simple.
I'll create separate PRs.
arch/xtensa/src/esp32/esp32_cpustart.c
arch/xtensa/src/common/xtensa_abi.h
boards/xtensa/esp32/esp32-core/include/board.h
Also, I skipped the following files and directories because
they looked too huge and/or foreign.
arch/xtensa/include/esp32/tie.h
arch/xtensa/include/xtensa/xtensa_corebits.h
arch/xtensa/src/esp32/hardware/
arch/xtensa/include/esp32/tie-asm.h
arch/xtensa/include/esp32/core-isa.h
arch/xtensa/include/xtensa/core.h
I also fixed a few "is is" style typos when unwrapping long lines.
2020-03-12 07:45:44 -06:00
Masayuki Ishikawa
da3fb9c94f
arch: xtensa: Call the waiti instruction in up_idle()
...
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-03-06 01:46:09 -06:00
Masayuki Ishikawa
a5cb0b3731
arch: xtensa: Fix SMP related logic
...
NOTE: Applied the same logic as in other SMP architectures
2020-03-04 23:34:43 -06:00
Masayuki Ishikawa
e16c3ca25b
arch: esp32: Fix compile error with xtensa-esp32-elf-gcc 8.2.0
2020-03-04 03:51:13 -06:00
YAMAMOTO Takashi
34b17ec5cb
xtensa: Fix up_schedule_sigaction
...
This fixes various crashes in ostest.
2020-02-28 07:48:16 -06:00
YAMAMOTO Takashi
119a38ce10
xtensa: Fix typos and comments
2020-02-28 11:33:29 +01:00
YAMAMOTO Takashi
930e2788cc
xtensa: Use ar and nm from the toolchain
...
This fixes build on macOS, where native ar is incompatible.
2020-02-26 10:47:26 -06:00
Xiang Xiao
cde88cabcc
Run codespell -w with the latest dictonary again
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-02-23 22:27:46 +01:00
liuhaitao
8ca4ca5ae8
arch: undef USE_SERIALDRIVER if CONFIG_CONSOLE_SYSLOG
...
An error was introduced from:
commit f982ee43db
Author: Xiang Xiao <xiaoxiang@xiaomi.com>
Date: Tue Feb 18 09:55:04 2020 +0800
drivers/serial: Remove the lowconsole driver
Replace with the syslog console driver which has more capability than lowconsole
2020-02-23 09:10:06 -06:00
Xiang Xiao
bd4e8e19d3
Run codespell -w against all files
...
and fix the wrong correction
2020-02-22 14:45:07 -06:00
Xiang Xiao
51a2171c71
ramlog: Remove g_ramlog_syslog_channel since it's same as g_default_channel
...
And remove syslog_init_e because all initialization is later now and we don't
distinguish the initialition phase anymore after ramlog don't need special
initialize.
2020-02-18 13:04:45 -06:00
Xiang Xiao
dcaaf2d912
ramlog: Remove all ramlog_consoleinit related code
...
Because we can get the same function by CONSOLE_SYSLOG/syslog_console_init.
BTW, it isn't a good choice to use g_ramlogfops as /dev/console since nsh
will read back what it send out which will surprise most people.
2020-02-18 12:57:43 -06:00
Xiang Xiao
f982ee43db
drivers/serial: Remove the lowconsole driver
...
Replace with the syslog console driver which has more capability than lowconsole
2020-02-18 12:51:09 -06:00
Xiang Xiao
6b77f73583
arch: Move iob_initialize into nx_start just after heap initialization
...
it doesn't make sense that iob initialization is in up_initialize
but other memory components initialization is called in nx_start
Change-Id: Id43aeaa995f340c5943f59a0067a483ff3ac34a2
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-02-18 10:26:19 -03:00
Xiang Xiao
e7d9260014
arch: Customize the typedef of size_t instead of intptr_t
...
To ensure size_t same as toolchain definition in the first place and rename CXX_NEWLONG to ARCH_SIZET_LONG. The change also check whether __SIZE_TYPE__ exist before CONFIG_ARCH_SIZET_LONG so our definition can align with toolchain(gcc/clang) definition automatically.
2020-02-18 07:15:19 -06:00
Xiang Xiao
6d69439f58
Call xxx_timer_initialize from clock subsystem
...
Call xxx_timer_initialize from clock subsystem to make timer ready for use as soon as possiblei and revert the workaround:
commit 0863e771a9
Author: Gregory Nutt <gnutt@nuttx.org>
Date: Fri Apr 26 07:24:57 2019 -0600
Revert "sched/clock/clock_initialize.c: clock_inittime() needs to be done with CONFIG_SCHED_TICKLESS and clock_initialize should skip clock_inittime() for external RTC case since the RTC isn't ready yet."
This reverts commit 2bc709d4b9
.
Commit 2bc709d4b9
was intended to handle the case where up_timer_gettime may not start from zero case. However, this change has the side-effect of breaking every implementation of tickless mode: After this change the tickless timer structures are used before they are initialized in clock_inittime(). Initialization happens later when up_initialize is called() when arm_timer_initialize().
Since the tickless mode timer is very special, one solution might be to
1. Rename xxx_timer_initialize to up_timer_initialize
2 Move up_timer_initialize to include/nuttx/arch.h
3. Call it from clock subsystem instead up_initialize
Basically, this change make timer initialization almost same as rtc initialization(up_rtc_initialize).
For now, however, we just need to revert the change.
2020-02-08 07:40:06 -06:00
Xiang Xiao
76bbed07a4
Call up_irqinitialize from irq subsystem
...
Call up_irqinitialize from irq subsystem to make the irq ready for use as soon as possible
2020-02-08 07:39:22 -06:00
Xiang Xiao
c5b1554d84
Remove NETDEV_LOOPBACK option, NET_LOOPBACK is enough
2020-02-02 08:25:06 -06:00
Xiang Xiao
5c80b94820
Replace #include <semaphore.h> to #include <nuttx/semaphore.h>
...
Since the kernel side should call nxsem_xxx instead and remove the unused inclusion
2020-02-01 08:27:30 -06:00
Xiang Xiao
80277d1630
Refine the preprocessor conditional guard style ( #190 )
2020-01-31 19:07:39 +01:00
Xiang Xiao
68951e8d72
Remove exra whitespace from files ( #189 )
...
* Remove multiple newlines at the end of files
* Remove the whitespace from the end of lines
2020-01-31 09:24:49 -06:00
Xiang Xiao
6a3c2aded6
Fix wait loop and void cast ( #24 )
...
* 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
2020-01-02 10:54:43 -06:00
Ouss4
7dcf8dde7c
arch/xtensa/src/esp32/esp32_start.c: A comma was missing in g_idlestack attributes.
2019-12-10 13:42:58 -06:00
Xiang Xiao
800e12fc42
arch/: Add rpmsg_serialini() call to every implementation of up_initialize() for rpmsg uart initialization.
2019-11-04 08:11:50 -06:00
Gregory Nutt
6c2f73774b
armv7-a and xtensa: Apply Masayuki Ishakawa's change of cef90a3865
to these these other SMP architectures as well.
2019-10-04 07:17:35 -06:00
Nathan Hartman
68d43d3679
Fix typos.
2019-08-04 14:50:28 -06:00
Gregory Nutt
d5bbbba8ad
Rename all remaining arch/xxx/src/xxx/chip to arch/xxx/src/xxx/hardware.
2019-05-25 09:27:28 -06:00
Gregory Nutt
abf6965c24
Squashed commit of the following:
...
libs/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
syscall/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
wireless/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
Documentation/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
include/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
drivers/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
sched/: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
configs: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
arch/xtensa: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
arch/z80: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
arch/x86: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
arch/renesas and arch/risc-v: Remove references to CONFIG_DISABLE_SIGNALS. Signals can no longer be disabled.
arch/or1k: Remove all references to CONFIG_DISABLE_SIGNALS. Signals are always enabled.
arch/misoc: Remove all references to CONFIG_DISABLE_SIGNALS. Signals are always enabled.
arch/mips: Remove all references to CONFIG_DISABLE_SIGNALS. Signals are always enabled.
arch/avr: Remove all references to CONFIG_DISABLE_SIGNALS. Signals are always enabled.
arch/arm: Remove all references to CONFIG_DISABLE_SIGNALS. Signals are always enabled.
2019-04-29 14:52:05 -06:00
Gregory Nutt
b290160b3b
Rename sched_process_timer to nxsched_process_timer. That is the appropriate name for an internal sched/ function (still many named incorrectly).
2019-03-20 19:27:40 -06:00
Gregory Nutt
3c0f6f4876
arch/xtensa/src/esp32/esp32_serial.c: Fix some backward arguments. Correct 2-stop bit setting.
...
sched/sched/sched_waitid.c: Could exit without leaving critical section on some error conditions.
sched/signal/sig_deliver.c: Update some comments.
2019-02-28 11:32:31 -06:00
Gregory Nutt
dc8c814ca3
Squashed commit of the following:
...
Fixed coding standard error in several files. Use of while( is incorrect; a space is required between while and (. Also ran tools/nxstyle and fix thoses complaints as well in most files.
Changes to comply with coding standard. Mostly focused on files with missing space after keyword in if(, switch(, and for(. Offending files also got changes to comply with tools nxstyle. If there were logs of nxstyle complaints, the file also got a taste of tools/indent.sh. Still need to fix occurrences of while( with missing space. There are a lot of them.
2019-02-27 08:41:08 -06:00
Gregory Nutt
95746be5a2
arch/xtensa/src/esp32/esp32_timerisr.c: Fix backward comparison.
2019-02-17 18:02:26 -06:00
Gregory Nutt
a64869aa67
CONFIG_NFILE_DESCRIPTORS=0 can no longer be used to disable the file system. NuttX with no file system does not make sense.
...
Squashed commit of the following:
configs/: The few configurations that formerly set CONFIG_NFILE_DESCRIPTORS=0 should not default, rather they should set the number of descriptors to 3.
fs/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
tools/: Tools updates for changes to usage of CONFIG_NFILE_DESCRIPTORS.
syscall/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
libs/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
include/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
drivers/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
Documentation/: Remove all references to CONFIG_NFILE_DESCRIPTORS == 0
binfmt/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
arch/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
net/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
sched/: Remove all conditional logic based on CONFIG_NFILE_DESCRIPTORS == 0
sched/Kconfig: CONFIG_NFILE_DESCRIPTORS may no longer to set to a value less than 3
configs/: Remove all settings for CONFIG_NFILE_DESCRIPTORS < 3
2019-02-11 12:09:26 -06:00
Gregory Nutt
a2e62f557d
Squashed commit of the following:
...
sched/init/nx_bringup.c: Fix a naming collision.
sched/init: Rename os_start() to nx_start()
sched/init: Rename os_smp* to nx_smp*
sched/init: Rename os_bringup to nx_bringup
sched/init: rename all internal static functions to begin with nx_ vs os_
2019-02-04 16:20:35 -06:00
Gregory Nutt
bb623d1e04
This commit renames all internal OS functions defined under sched/task so that they begin with the prefix. For example, nxtask_exit() vs. task_exit().
...
Squashed commit of the following:
Trivial, cosmetic
sched/, arch/, and include: Rename task_vforkstart() as nxtask_vforkstart()
sched/, arch/, and include: Rename task_vforkabort() as nxtask_vforkabort()
sched/, arch/, and include: Rename task_vforksetup() as nxtask_vfork_setup()
sched/: Rename notify_cancellation() as nxnotify_cancellation()
sched/: Rename task_recover() to nxtask_recover()
sched/task, sched/pthread/, Documentation/: Rename task_argsetup() and task_terminate() to nxtask_argsetup() and nxtask_terminate(), respectively.
sched/task: Rename task_schedsetup() to nxtask_schedsetup()
sched/ (plus some binfmt/, include/, and arch/): Rename task_start() and task_starthook() to nxtask_start() and nxtask_starthook().
arch/ and sched/: Rename task_exit() and task_exithook() to nxtask_exit() and nxtask_exithook(), respectively.
sched/task: Rename all internal, static, functions to begin with the nx prefix.
2019-02-04 13:42:51 -06:00
Gregory Nutt
b1001b4e50
Update TODO list regarding non-queuing of signal actions; Add comments in code at areas where the issue applies.
2019-02-04 08:35:03 -06:00
Gregory Nutt
a77c073797
arch/: Fix an interlock that was broken by commit 641a98a434
in all implementations of up_sigdeliver.
2019-02-03 17:14:32 -06:00
Gregory Nutt
641a98a434
arch/: The saved return register state is available on the user stack. Thic commit reorders some logic so that certain, critical registers are preserved in the TCB. This does not make the logic 100% secure, but does prevent some obvious things. sched/signal/sig_delivery: Add a flag to the TCB to indicate that we are in a signal handler. Use this flag to assure that a there a never attempts to nest signal handling operations on a thread. This was guaranteed before but when locking of pre-emption during signal delivering was eliminated in a previous commit, there was a remote possibility of an attempt to do nested signal handling. This flag assures that there is only one signal handled at a time.
2019-02-03 15:29:47 -06:00
Gregory Nutt
4b9abfa3c2
Every file that uses serial IOCTLs (TIOC*) must explicity include nuttx/fs/ioctl.h. This was included previously via sneak path in the now deleted arch/serial.h.
2019-01-27 13:41:44 -06:00
Xiang Xiao
818d8dda1e
Remove empty seria.h and all references
2019-01-26 15:08:14 -06:00
Xiang Xiao
763ba51b78
arch/xxx/src/xxx/up_assert.c: Dump CPU0 IDLE stack only when PID equals 0. IDLE threads of other CPUs do not need this special check
2019-01-26 10:59:23 -06:00
ligd
5a6108c172
arch/xxx/src/common/up_initialize.c: Move up_pminitialize() after timer_initialize()
2019-01-26 07:32:14 -06:00
Gregory Nutt
db24306435
arch/assertion logic: Fix additional places where the test for an IDLE task is incorrect. It is not invalid in all configurations to check for PID==0. However, the logic fixed in these places lackes sufficient intelligence to find the right stack for the CPU IDLE thread and could still show the wrong stack.
2018-12-18 17:45:46 -06:00
Gregory Nutt
ec9265aa95
arch assertions: Correct duplicated logic from commit dbf01d12b7
. Checking for PID == zero is not a valid way to test for the IDLE task in all configurations! This is only true in the single CPU configuration. In multiple CPU configurations, there will be a separate IDLE task for each CPU with a different PID.
2018-12-18 17:35:42 -06:00
Gregory Nutt
0af39e1493
arch/: Update all _exit() implementations for all architectures so that they correctly called the scheduler instumentation layer for the new task that runs when the old one exits. This missing instrumentation was confusing the Critical Section Monitor logic with uses this instrumentation to track the state of critical sections.
2018-11-24 18:20:57 -06:00
Xiang Xiao
dbf01d12b7
Assertions: Identify the running task correctly when dumping task state information. It takes time to switch to the target task after g_readytorun has been modified. If panic/assert happen during this period, the dump will contain the incorrect and confusing information due to the difference between the real running task and the return value of this_task(). This change resolve this problem by adding g_running_task to track the real running task through the context switch.
2018-11-15 07:11:51 -06:00
Xiang Xiao
543f4ed8ec
arch/ all assertion functions: up_assert move the register dump to first make the more important info first
2018-11-11 12:53:59 -06:00
Xiang Xiao
dfe788be25
arch/ all assertion functinos: up_stackdump dump the full stack if stack overflow the stack info is very useful to find the backtrace
2018-11-11 12:52:36 -06:00
Xiang Xiao
e4106a3744
arch/ assertions files: up_registerdump capture the general register if not yet saved and up_saveusercontext is implemented, the register dump is very useful to find the cause of failure.
2018-11-11 12:50:50 -06:00
Gregory Nutt
2b3ec4172d
arch/: Add 'BOARD_ASSERT_RESET_VALUE' in config/Kconfig and replace reboot status '0' to 'CONFIG_BOARD_ASSERT_RESET_VALUE'.
2018-11-10 14:06:46 -06:00
dongjianli
19e16cb1ba
up_internal.h: Define out the prototype for up_netinitialize() if CONFIG_NETDEV_LATEINIT is also defined
2018-08-24 14:50:45 -06:00
Xiang Xiao
e1202d2ed3
Replace all ASSERT with DEBUGASSERT to save the code space
2018-08-24 06:58:30 -06:00
Xiang Xiao
467d2a58ea
Replace non critical PANIC with DEBUGPANIC to save the code space
2018-08-24 06:21:15 -06:00
xuanlin
2c93467436
pthreads: Add support static pthread stack. Add standard pthread_attr_setstack() and pthread_attr_getstack(). In all cases where the stack is released, add check to see which allocator must be used to free the stack: The user or the kernel allocator.
2018-08-23 09:49:20 -06:00
Xiang Xiao
a465b6f0d4
configs/: Change CONFIG_BOARD_RESET_ON_CRASH to CONFIG_BOARD_RESET_ON_ASSERT, arch/: Implement call to board_reset() if in all implementations of up_assert() when CONFIG_BOARD_RESET_ON_ASSERT=y.
2018-08-22 17:04:39 -06:00
Gregory Nutt
cba0ddad0e
arch/: Most some common debug configuration settings out of header files and into Kconfig files where they belong.
2018-08-19 14:55:49 -06:00
Gregory Nutt
c790450ba2
Remove CONFIG_ARCH_CALIBRATION. It is awkward to use and no longer necessary now that we have apps/examples/calib_udelay.
2018-08-19 10:06:36 -06:00
Gregory Nutt
a94e3284b3
syslog: Enable is partial, crippled version of syslog_flush(); arch/: Call syslog_flush() from assertion handling logic.
2018-06-07 16:29:16 -06:00
Gregory Nutt
8aa486515e
arch/: Correct critical section logic associated with the recent signal handler changes (yet again).
2018-06-06 17:39:10 -06:00
Gregory Nutt
b5c6d9c849
Update some comments.
2018-06-06 17:20:01 -06:00
Gregory Nutt
a581d7c2e3
arch/: Relasted to last big change to force interrupts to be disabled. In the SMP case, we still must call leave_critical_section() at least once in order to compensate for the fact that the irqcount was incremented in up_schedsigaction().
2018-06-06 17:04:12 -06:00
Gregory Nutt
977d41d519
Based on a change recommended by Mark Shulte:
...
Signal handlers maybe run with interrupts enabled or disabled, depending on how the task the received the signal was blocked. (i.e.: If sem_wait() is called, then we disable interrupts, then block the currently running task). This could be dangerous, because user code would be running with interrupts disabled.
This change forces interrupts to be enabled in up_sigdeliver() before executing the signal handler calling up_irq_enable() explicitly. This is safe because, when we return to normal execution, interrupts will be restored to their previous state when the signal handler returns.
2018-06-06 09:54:30 -06:00
Gregory Nutt
f2a89813f2
Build system: Remove fixed lib/ subdirectory and its content. Replace with new directory called staging/ that is created dynamically when building and removed when 'make clean' is done. This both improves the name and eliminates a garbage directory from the repository.
2018-05-29 11:36:21 -06:00
Gregory Nutt
de6b13b3ab
Per OpenGroup.org, syslog -- and, hence, nonstandard vsyslog, and debug wrappers -- does not return a value. Rename _vsyslog to nx_vsyslog. Use internal nx_vsyslog in the few cases where a return value is required.
2018-03-04 08:07:07 -06:00
Gregory Nutt
c260ef5d59
arch/xtensa/common: Port the SMP change by Masayuki Ishikawa to the Xtensa family.
2018-02-14 08:58:22 -06:00
Gregory Nutt
1e59d9dd14
armv7-a, armv7-r, armv7-m: Add atomic read-add-write and read-subtract-write functions.
2018-02-04 12:22:03 -06:00
Gregory Nutt
2683f713ab
Make sure that labeling is used consistently in all function headers (part 3).
2018-02-01 12:17:03 -06:00
Gregory Nutt
7cf88d7dbd
Make sure that labeling is used consistently in all function headers.
2018-02-01 10:00:02 -06:00
Sungki Kim
d9c1f37ed5
modify default uart pin for ESP-WROOM-32
2017-08-13 22:42:42 +09:00
Sungki Kim
dbe4978c6a
fix gpio enable reg
2017-08-13 22:42:10 +09:00
Gregory Nutt
1c5ec07414
arch/: Remove dangling space at the end of lines.
2017-06-28 13:16:48 -06:00
Gregory Nutt
7fe112fe4c
Kconfig/deconfigs: Add CONFIG_ARCH_TOOLCHAIN_GNU to indicate that the toolchain is based on GNU gcc/as/ld. This is in addition to the CPU-specific versions of the same definition.
2017-05-13 11:44:12 -06:00
Gregory Nutt
0de294a586
Fix lots of occurrences of 'the the', 'the there', 'the these', 'the then', 'the they.
2017-05-11 13:35:56 -06:00
Gregory Nutt
2043e1a114
IOBs: Move from driver/iob to a better location in mm/iob
2017-05-09 07:35:30 -06:00
Gregory Nutt
a55e937643
Correct mispelling
2017-04-22 17:03:34 -06:00
Gregory Nutt
bfb93338f6
Move net/iob to drivers/iob so that the I/O buffering feature can be available to other drivers when networking is disabled.
2017-04-20 16:08:49 -06:00
Gregory Nutt
370e188fa3
Convert more drivers to use new interrupt argument structure.
2017-02-28 09:05:01 -06:00
Mark Schulte
b3222bbc8a
irq_dispatch: Add argument pointer to irq_dispatch
...
Provide a user defined callback context for irq's, such that when
registering a callback users can provide a pointer that will get
passed back when the isr is called.
2017-02-27 06:27:56 -06:00
Gregory Nutt
1d290c2b37
setvbuf: Add support for disabling I/O buffering. Initially cut; untested.
2017-02-09 09:24:44 -06:00
Gregory Nutt
0db31d0cd1
SMP: Fix a typo introduced in c5b00ccfc4
2017-01-16 08:48:05 -06:00
Gregory Nutt
a2083fbc92
Update some comments
2017-01-15 12:35:03 -06:00
Gregory Nutt
2837eff0cd
SMP: Most cosmetic clean-up from review of previous commit.
2017-01-14 09:22:13 -06:00
Gregory Nutt
c5b00ccfc4
SMP Signals: Fix some SMP signal delivery logic. Was not handling some critical sections correctly and was missing logic to signal tasks running on other CPUs.
2017-01-14 08:28:37 -06:00
Gregory Nutt
3ed091376c
In all implementations of _exit(), use enter_critical_section() vs. disabling local interrupts.
2017-01-13 11:08:24 -06:00
Gregory Nutt
c9b15ebb6a
Xtensa ESP32: Remove call to sched_lock()/unock() from inter-cpu interrupt logic. Results in recursive call to sched_mergepending().
2016-12-25 09:26:20 -06:00
Gregory Nutt
b87fc91466
Revert "Xtensa SMP: Avoid a nasty situation in SMP by assuring that up_release_pending() is not re-entered."
...
This reverts commit 733a57b4df
.
2016-12-25 07:12:46 -06:00
Gregory Nutt
efb86382c3
SMP: Back out deferred IRQ locking. This was accidentally merged into master and it looks like it is going to be more work than I thought to get it working again. Changes will go to the irqlock branch.
2016-12-24 19:53:37 -06:00
Gregory Nutt
1b790a61cd
Xtensa ESP32: Add stack checking logic.
2016-12-23 15:51:33 -06:00
Gregory Nutt
c7f5435637
Implement deferred IRQ locking. The rest of the support for Xtensa. Untested.
2016-12-23 11:56:45 -06:00
Gregory Nutt
cb1cc66d81
Implement deferred IRQ locking. Adds partial support for Xtensa. More is needed.
2016-12-23 11:39:44 -06:00
Gregory Nutt
5f9caad078
Xtensa ESP32: Correct copyright info; update some comments
2016-12-22 12:34:55 -06:00
Gregory Nutt
714e6f80ca
Xtensa ESP32: Corrects a problem with dispatching to signal handlers: Cannot vector directly to the signal handling function as in other ABIs under the Xtensa Window ABI. In that case, we need to go through a tiny hook when performs the correct window call (call4) otherwise registers will be scrambled in the signal handler
2016-12-22 11:19:38 -06:00
Gregory Nutt
d9a64b9ca9
Xtensa ESP32: Some fixes from integration of ostest configuration. Almost works: There are some assertions in xtensa_sigdeliver()
2016-12-22 09:34:39 -06:00
Gregory Nutt
733a57b4df
Xtensa SMP: Avoid a nasty situation in SMP by assuring that up_release_pending() is not re-entered.
2016-12-21 13:34:01 -06:00
Gregory Nutt
588d2b506f
Xtensa ESP32: Oddly, an rsync barrier when writing to co-processor register corrects problem.
2016-12-21 08:04:48 -06:00
Gregory Nutt
1b7162a0db
Eliminate a warning
2016-12-21 08:04:48 -06:00
Gregory Nutt
81697f2285
Xtensa ESP32: Fix APP CPU startup... Can't use semaphores on the IDLE thread.
2016-12-20 11:26:37 -06:00
Gregory Nutt
6d5a718b98
Xtensa ESP32: A few fixes for APP CPU start-up
2016-12-20 10:38:27 -06:00
Gregory Nutt
4e9a0ffea5
Xtensa ESP32: Update APP CPU startup logic to match current Expressif example code.
2016-12-20 09:00:04 -06:00
Gregory Nutt
3b681586c0
Xtensa ESP32: Missing prologue/epilogue macros on C callable function
2016-12-20 08:31:36 -06:00
Gregory Nutt
e5182acbe3
Xtensa ESP32: Make sure that SMP configuratin still builds without errors.
2016-12-19 14:12:19 -06:00
Gregory Nutt
e61549d8b9
Xtensa ESP32: Clean-up and fixes from last commits
2016-12-19 13:57:37 -06:00
Gregory Nutt
097f09cb02
Xtensa ESP32: Corrects timer initialization and timer input frequency.
2016-12-19 11:50:28 -06:00
Gregory Nutt
a9a39800a4
Xtensa ESP32: Fixes some double faults and user errors, but I do not fully understand why.
2016-12-19 11:14:08 -06:00
Gregory Nutt
886ce88b4f
Xtensa ESP32: Automatically mount /proc at start-up.
2016-12-19 09:43:16 -06:00
Gregory Nutt
2b0b698d72
ESP32 Serial: Add logic to prevent infinite loops in interrupt handler.
2016-12-18 16:04:25 -06:00
Gregory Nutt
71bb79a6c7
ESP32 Serial: Fix some register bit definitions.
2016-12-18 15:11:34 -06:00
Gregory Nutt
4bd530d026
Xtensa ESP32: Last change should be conditioned on the window ABI.
2016-12-18 13:17:31 -06:00
Gregory Nutt
665c1647b5
Xtensa ESP32: Need to spill registers to memory as the last dying action before switching to a new thread.
2016-12-18 12:54:47 -06:00
Gregory Nutt
586f0aab50
Fix context save logic when called in window ABI configuration. Add an IDLE stack. Don't depend on the mystery stack received from the bootloader.
2016-12-18 10:08:08 -06:00
Gregory Nutt
93e6d16f75
Xtensa ESP32: wsr, not rsr.
2016-12-17 11:23:10 -06:00
Gregory Nutt
a88c50d366
Xtensa ESP32: Need to clone some logic for syncrhonous context switch. Window spill logic in the conmon restores logic is inappropriate in this context
2016-12-17 11:00:12 -06:00
Gregory Nutt
6b80e5f15f
Xtensa ESP32: Fix clobbered a9 in co-processor context save/restore
2016-12-17 11:00:12 -06:00
Gregory Nutt
8de1127899
Xtensa ESP32: Using wrong register to disable interrupts.
2016-12-17 11:00:12 -06:00
Gregory Nutt
38ebe6c13f
Xtensa ESP32: Change that should have been included in a previous commit was not.
2016-12-17 08:11:32 -06:00
Gregory Nutt
05e798488b
One register getting clobber on context save
2016-12-17 08:10:10 -06:00
Gregory Nutt
adbacfc42c
Xtensa ESP32: Fix a duplicate in Kconfig files. Level 1 should return via RFE.
2016-12-17 07:07:33 -06:00
Gregory Nutt
6599feb310
Xtensa ESP32: Fixes a few issue with restoring registers on interrupt return, but there is still a problem
2016-12-16 17:56:22 -06:00
Gregory Nutt
cdd8dc72a5
Xtensa ESP32: Basically a redesign of the interrupt dispatch logic.
2016-12-16 15:36:52 -06:00
Gregory Nutt
d4ad5f04d3
Xtensa ESP32: Minor rearchitecting of how CPU interrupts are enabled. MOre to come.
2016-12-16 14:13:09 -06:00
Gregory Nutt
cd3d414ba2
Xtensa: Fix some missing SMP logic
2016-12-16 13:37:28 -06:00
Gregory Nutt
34a994b0f6
Correct a logic problem the prevented dumping the IDLE thread's stack on an assertion
2016-12-16 13:21:01 -06:00
Gregory Nutt
6337fadd8c
Missing escape character on CR of CR-LF expansion.
2016-12-16 10:49:42 -06:00
Gregory Nutt
935e49f5bb
Update some comments
2016-12-16 09:38:08 -06:00
Gregory Nutt
f1a5b91cd8
Use r6, not r2 when passing paramters with call4
2016-12-16 09:21:44 -06:00
Gregory Nutt
41cf32a20e
Fix windowspill register handling + Use r6, not r2 when passing paramters with call4
2016-12-16 09:20:36 -06:00
Gregory Nutt
aa5a8b0ca2
Xtensa: Make sure that all C callable assembly functions includes ENTRY prologue and RET epilogue.
2016-12-15 14:02:19 -06:00
Gregory Nutt
c56268b416
Fix missing CALL0 ABI condition.
2016-12-15 11:06:41 -06:00
Gregory Nutt
ea9e6c48e4
Cosmetic update to comments.
2016-12-15 10:43:34 -06:00
Gregory Nutt
10b9a10d2f
Xtensa ESP32: Fix several build-related issues associated with vector section
2016-12-15 10:08:26 -06:00
Gregory Nutt
b5e979d58f
ESP32: Fix a couple of bugs associated with handling of CPU interrupts.
2016-12-14 13:31:44 -06:00
Gregory Nutt
4052ec2d90
Add missing ENTRY() and RET() macros in C callable assembly language. At one time I though the that the ESP32 support the CALL0 ABI. I was mistaken so there may be a few more like this.
2016-12-14 12:14:51 -06:00
Gregory Nutt
730ca4ce41
Fix missing semicolons in DEBUGASSERT statements
2016-12-14 09:06:09 -06:00
Angus Gratton
dd5e47a418
ESP32 core v2: Two changes (1) flushes the UART TX buffer in the esp32 serial shutdown routine. The ROM bootloader does not flush the FIFO before handing over to user code, so some of this output is not currently seen when the UART is reconfigured in early stages of startup. And changes the openocd config file's default flash voltage from 1.8V to 3.3V. This is not necessary right now, but may save some hard-to-debug moments down the track (3.3V-only flash running at 1.8V often half-works and does weird things...)
2016-12-14 08:15:03 -06:00
Gregory Nutt
a7b688e87b
sched notes: Add additional note to see if/when CPU is started in SMP mode.
2016-12-07 09:08:20 -06:00
Gregory Nutt
d65be718c2
sched_note: Extend OS instrumentation to include some SMP events.
2016-11-27 17:14:57 -06:00
Gregory Nutt
e3fe320e08
SMP: Add support for linking spinlocks into a special, non-cached memory region.
2016-11-26 08:47:03 -06:00
Gregory Nutt
6a875bcb61
Xtensa: Add EXPERIMENTAL hooks to support lazy co-processor state restore in the future.
2016-11-16 06:48:13 -06:00
Gregory Nutt
c84db68103
Xtensa ESP32: Fix some compilation errors that snuck with some of the last changes
2016-11-14 13:29:08 -06:00
Gregory Nutt
ac1bb127b6
Correct some C++ style comments.
2016-11-08 08:51:03 -06:00
Gregory Nutt
b6d6b774e9
Xtensa: In this model, co-processor state restore must enable co-processors in CPENABLE.
2016-11-08 08:23:52 -06:00
Gregory Nutt
b0dffdc2ca
Fix a number of header files with mismatched 'extern C {' and '}'
2016-11-05 07:25:05 -06:00
Gregory Nutt
5cfb83ec81
ESP32: File repeated in Make.defs
2016-11-03 17:47:09 -06:00
Gregory Nutt
0a5b4f684a
arch: Disable priority inheritance on all semaphores used for signaling in the rest of the MCU drivers
2016-11-03 17:38:26 -06:00
Gregory Nutt
54d7656f18
Update some comments
2016-11-03 07:04:03 -06:00
Gregory Nutt
cfcc7edded
Xtensa/ESP32: Add window spill logic; Add C++ support to linker script
2016-10-31 17:51:48 -06:00
Gregory Nutt
4d0b0e44f1
Xtensa/ESP32: Add up_cpu_idlestack() and fix some compile issues.
2016-10-31 14:56:48 -06:00
Gregory Nutt
28d1478480
Xtensa/ESP32: Add CPU1 startup logic
2016-10-31 13:15:15 -06:00
Gregory Nutt
a8e3f79494
Xtensa/ESP32: Add User Exception handler
2016-10-31 12:04:52 -06:00
Gregory Nutt
a787a99071
ESP32: Add inter-cpu interrupts
2016-10-31 08:29:28 -06:00
Gregory Nutt
63d5ab5b67
Add logic to attach inter-CPU interrupts. Fix some compilation errors.
2016-10-30 16:15:04 -06:00
Gregory Nutt
6ff833e56e
Forgot to add a file in the last commit
2016-10-30 15:40:42 -06:00
Gregory Nutt
85ed3dae9a
Update some compilation issues
2016-10-30 15:38:51 -06:00
Gregory Nutt
a4c3fef0b7
Xtensa: Add more exception vectors. All just cause a PANIC now.
2016-10-30 12:20:11 -06:00
Gregory Nutt
fdede8099b
Xtensa/ESP32: Add Level1 handler, panic handler, remove EXECHOOKS.
2016-10-30 10:57:57 -06:00
Gregory Nutt
eaa5968a22
Xtensa: Convert some CALL0 C calls to be compatible with Window ABI
2016-10-30 08:46:35 -06:00
Gregory Nutt
261e0edc61
Xtensa: Adapt co-processor state save/restore functions so that they are call-able from C with Windows ABI.
2016-10-30 08:35:09 -06:00
Gregory Nutt
c0da94fc3e
Xtensa: Remove xtensa_macros.h; duplicates xtensa_abi.h
2016-10-30 07:45:28 -06:00
Gregory Nutt
8c96221093
Xtensa: Replace CONFIG_XTENSA_CALL0_ABI with compiler defined __XTENSA_CALL0_ABI__
2016-10-30 07:37:51 -06:00
Gregory Nutt
dc82fa81b8
Xtensa: Remove XTENSA_EXTRA_SA_SIZE. It is not used.
2016-10-30 07:09:24 -06:00
Gregory Nutt
4997ec7a1e
ESP32 Core V2: Add an SMP configuration to support development (not yet usable).
2016-10-29 14:56:07 -06:00
Gregory Nutt
c993a0267c
Xtensa: Add Window vector
2016-10-29 12:30:24 -06:00
Gregory Nutt
804f9c5de7
Xtensa: Rename some files.
2016-10-29 11:24:02 -06:00
Gregory Nutt
d346f25aae
Xtensa/ESP32: Fix some compile issues related to new co-processor logic
2016-10-29 10:27:46 -06:00
Gregory Nutt
4943b09ffa
Xtensa: Remove co-processor ownership array. I think that this is not needed (but I might be wrong).
2016-10-29 09:50:51 -06:00
Gregory Nutt
ccf5b4e357
Xtensa: Cleanup of co-processor logic; remove some unnecessary things.
2016-10-29 09:36:33 -06:00
Gregory Nutt
2fa8b9ba34
Xtensa ESP32: Co-processor state is code complete but uncompiled and untested.
2016-10-28 13:03:25 -06:00
Gregory Nutt
9345c6f4db
Xtensa: More co-processor save logic. Still not complete.
2016-10-28 11:56:35 -06:00
Gregory Nutt
a90d0bbf2e
ESP32: A little more co-processor logic. Still not complete.
2016-10-28 11:19:23 -06:00
Gregory Nutt
b4b26285f1
ESP32: Add tie-asm.h
2016-10-28 10:53:14 -06:00
Gregory Nutt
be2a801e30
Xtensa: Add xtensa_coproc.h
2016-10-28 10:33:20 -06:00
Gregory Nutt
e93bcda8ae
ESP32: Partial co-processor state save logic. Incomplete and will probably be redesigned.
2016-10-28 09:05:39 -06:00
Gregory Nutt
1e7f78e5c0
ESP32: Add implementation of up_putc
2016-10-27 18:27:19 -06:00
Gregory Nutt
4b16a64212
sched/Kconfig: Add ranges to START_YEAR, MONTH, and DATE
2016-10-27 18:13:31 -06:00
Gregory Nutt
e6377641a8
sched/Kconfig: Add ranges to START_YEAR, MONTH, and DAY
2016-10-27 18:04:14 -06:00
Gregory Nutt
afcda29646
ESP32: Fix some warnings
2016-10-27 16:46:34 -06:00
Gregory Nutt
6ed5d4b20c
ESP32: Fix some compilation errors
2016-10-27 16:36:22 -06:00
Gregory Nutt
c52ee46f5f
ESP32: More logic added to serial driver.
2016-10-27 16:02:04 -06:00
Paul A. Patience
912fe06a86
Add architecture-specific inttypes.h
2016-10-27 16:01:38 -04:00
Gregory Nutt
6f7c03bd71
ESP32: Add initial serial driver. Taken from SAMV7; not fully converted. Does not yet compile.
2016-10-27 13:55:58 -06:00
Gregory Nutt
bc51fdb96c
ESP32: Add GPIO signal mapping file
2016-10-27 11:04:24 -06:00
Gregory Nutt
cf73c9e1d1
EPS32: Add GPIO ROM interface definitions
2016-10-27 10:43:58 -06:00
Gregory Nutt
0967864c92
Correct clock initialization. The correct range for the month is 0-11 but is entered as 1-12 in the .config file
2016-10-27 08:32:23 -06:00
Gregory Nutt
76788040d5
ESP32: Add esp32_config.h
2016-10-26 15:45:03 -06:00
Gregory Nutt
ca7ca0eb57
ESP32: More compilation issues
2016-10-26 12:59:31 -06:00
Gregory Nutt
0a96f3a8c8
ESP32: Fix some compilation issues
2016-10-26 12:50:10 -06:00
Gregory Nutt
650757bbf0
ESP32: Add GPIO support
2016-10-26 12:11:24 -06:00
Gregory Nutt
946045075e
ESP32: Remove some long lines in header file
2016-10-26 08:23:09 -06:00
Gregory Nutt
2c09279343
ESP32: Add beginning of GPIO register definition file
2016-10-26 06:27:02 -06:00
Gregory Nutt
b8462d3e04
ESP32: Need to take priority into account when allocating CPU interrupts
2016-10-25 16:27:58 -06:00
Gregory Nutt
fef7b414c5
Add logic to attach peripheral interrupt sources to CPU interrupts
2016-10-25 15:19:29 -06:00
Gregory Nutt
6756b44dc3
ESP32: Add framework to assign a a peripheral to a CPU interrupt
2016-10-25 13:16:05 -06:00
Gregory Nutt
d5fceadacd
Xtensa: Fix some compilation issues
2016-10-25 12:34:23 -06:00
Gregory Nutt
2a59205ffa
ESP32: Add CPU interrupt managmement logic; improve level interrupt decoding.
2016-10-25 12:02:53 -06:00
Gregory Nutt
c457e26f2a
ESP32: Add UART register definition file
2016-10-25 08:35:07 -06:00
Gregory Nutt
1dabbd8489
Costmetic changes
2016-10-24 16:18:30 -06:00
Gregory Nutt
3d4ce55ebd
Oops.. a couple of hunks failed in the last patch. Hope I got them fixed correctly.
2016-10-24 15:25:40 -06:00
Gregory Nutt
7b7e352d6e
ESP32: Add some peripheral configuration
2016-10-24 14:09:47 -06:00
Gregory Nutt
818b0171d7
ESP32: Clock configuration is not yet implemented. ESP32 will be running a XTAL frequency.
2016-10-24 07:30:11 -06:00
Gregory Nutt
4cf60022ca
Xtensa: Correct some compile issues
2016-10-23 16:25:55 -06:00
Gregory Nutt
2514ddec8b
Xtensa: Add NMI handler
2016-10-23 16:24:09 -06:00
Gregory Nutt
261eec110b
Xtensa: Mismatched #endif
2016-10-23 14:19:08 -06:00
Gregory Nutt
9a9488ae92
ESP32: Fix heap initialization
2016-10-23 14:20:03 -06:00
Gregory Nutt
a41c98952c
Xtensa: Fix some compilation issues
2016-10-23 13:33:48 -06:00
Gregory Nutt
1166d44441
Minor improvement to the up_irq_save() implementation
2016-10-23 13:37:40 -06:00
Gregory Nutt
6bbe55602c
Xtensa: Add tie.h
2016-10-23 13:25:41 -06:00
Gregory Nutt
1fcced12eb
Xtensa: Timer code now compiles okay
2016-10-23 11:31:48 -06:00
Gregory Nutt
2b33768d09
Xtensa: Revert back to some XCHAL naming
2016-10-23 10:39:51 -06:00
Gregory Nutt
bf363d103b
Merge branch 'esp32' of bitbucket.org:nuttx/nuttx into esp32
2016-10-23 10:47:31 -06:00
Gregory Nutt
9f06b13ffb
Xtensa: Add core.h header file
2016-10-23 10:43:16 -06:00
Gregory Nutt
9b5fedc81e
Xtensa: Add implementation of system timer; Correct CFLAGS
2016-10-23 10:08:38 -06:00
Gregory Nutt
c3d76d56bc
Xtensa: Fix some compilation issues
2016-10-23 10:06:30 -06:00
Gregory Nutt
09b462e419
Xtensa: Add region protected; Implement some missing signal handling logic.
2016-10-23 09:02:50 -06:00
Gregory Nutt
112b62a14e
Xtensa: Correct variou compilation issues
2016-10-23 08:04:57 -06:00
Gregory Nutt
a9a4f6384d
Xtensa: Add interrupt enable/disable controls. Add dummy timer and IRQ initialization.
2016-10-23 08:00:17 -06:00
Gregory Nutt
ea175cd98b
Xtensa: Flesh out other interrupt handlers. Suppress nested interrupts, at least for now.
2016-10-23 07:08:19 -06:00
Gregory Nutt
75df09fd40
Remove support for software prioritization of interrupts
2016-10-23 06:37:28 -06:00
Gregory Nutt
2c83d79465
Xtensa: Remove 'virtual' interrupt support
2016-10-23 06:24:35 -06:00
Gregory Nutt
23b003c649
Xtensa: Some things in Kconfig are really core options, not user configurations.
2016-10-22 12:25:56 -06:00
Gregory Nutt
53de345f05
Xtensa: Add up_cpu_index()
2016-10-22 09:29:15 -06:00
Gregory Nutt
764ef72641
Xtensa: Restore XCHAL_ naming convenction
2016-10-22 09:03:43 -06:00
Gregory Nutt
1ea22b680d
Xtensa: Add timer dispatch logic
2016-10-21 13:23:28 -06:00
Gregory Nutt
cf217c6e87
Xtensa: Fix a few more compilation issues
2016-10-21 11:24:23 -06:00
Gregory Nutt
c8fd15d315
Merge branch 'esp32' of bitbucket.org:nuttx/nuttx into esp32
2016-10-21 10:44:21 -06:00
Gregory Nutt
f07601a067
Xtensa: First cat at context switching functions
2016-10-21 10:43:59 -06:00
Gregory Nutt
7a007a1e8e
ESP32: The ESP32 Core V2 board does not have any user controllable LEDs.
2016-10-21 07:35:56 -06:00
Gregory Nutt
363fe19ff6
Xtensa: Fix some compile issues
2016-10-20 16:42:37 -06:00
Gregory Nutt
7a89808deb
ESP32: Add interrupt decode logic
2016-10-20 16:22:37 -06:00
Gregory Nutt
bd6633dd84
Xtensa: Add some data structures needed for SMP support.
2016-10-20 15:21:29 -06:00
Gregory Nutt
67c98baaea
Xtensa: Add a missing include file
2016-10-20 14:28:13 -06:00
Gregory Nutt
520513f456
Xtensa: Add interrupt decode framework
2016-10-20 14:34:51 -06:00
Gregory Nutt
ed8377af72
Xtensa: More interrupt-related logic
2016-10-20 14:28:14 -06:00
Gregory Nutt
9e1600b7d3
Xtensa: Trivial interrupt-related changes
2016-10-20 12:56:35 -06:00
Gregory Nutt
30c4a41332
Fix a few compile-related issues
2016-10-20 11:33:53 -06:00
Gregory Nutt
5c3afd088e
Xtensa: A little more interrupt handling logic
2016-10-20 11:44:14 -06:00
Gregory Nutt
d75fb34b62
Xtensa: Fix some xtensa_context.S assemble issues
2016-10-20 08:58:33 -06:00
Gregory Nutt
11af1fc24c
Xtensa: Separate context save/restore from coprocessor functions. Making to changes to interrupt handling to support NuttX.
2016-10-20 08:51:15 -06:00
Gregory Nutt
d2d60a59bf
ESP32: Refresh configuration; fix some compile issues
2016-10-19 13:58:50 -06:00
Gregory Nutt
dda7f4cd75
Trivial corrections to spacing
2016-10-19 14:01:51 -06:00
Gregory Nutt
d1562a18e6
Add vectors for interrupt levels 2-6
2016-10-19 13:58:51 -06:00
Gregory Nutt
291c49afc3
Xtensa/ESP32: Move some ESP32-specific macros from xtensa_macros.h to chip_macros.h
2016-10-19 11:28:42 -06:00
Gregory Nutt
31d5acc8a7
Forgot to add a file before the last commit
2016-10-19 10:06:07 -06:00
Gregory Nutt
29c3acdc4e
Add xtensa_testset.c
2016-10-19 09:58:12 -06:00
Gregory Nutt
8c606c4878
ESP32: Add more missing infrastructure
2016-10-18 13:18:59 -06:00
Gregory Nutt
6357970c5f
Xtensa: Fix some compilation issues
2016-10-18 12:38:57 -06:00
Gregory Nutt
503a2472e7
Xtensa: Add assertion logic
2016-10-18 12:42:57 -06:00
Gregory Nutt
054a1a8231
ESP32 Core: Refresh configuration
2016-10-18 09:41:16 -06:00
Gregory Nutt
ac97a81fb0
ESP32 core: Add linker script
2016-10-18 09:43:56 -06:00
Gregory Nutt
c5d14f9496
Xtensa: A few changes to get esp32_start.c to compile
2016-10-17 10:45:21 -06:00
Gregory Nutt
51fc3de40b
Xtensa: Add CPU1 start logic
2016-10-17 09:13:12 -06:00
Gregory Nutt
c1334048c5
Xtensa: Add initial CPU0 start-up logic
2016-10-17 08:15:36 -06:00
Gregory Nutt
0591b67c15
Xtensa: A few fixes for clean compile
2016-10-16 10:27:52 -06:00
Gregory Nutt
e7d791dd95
XTensa: Add an initial implementation of up_initialstate. Need to think through co-processor support.
2016-10-16 10:36:03 -06:00
Gregory Nutt
8c3c78f24a
Xtensa: Fix register usage in up_strackframe
2016-10-16 09:26:33 -06:00
Gregory Nutt
a8662c70db
Xtensa: Keep task state in TCB (unless you want to redesign signal handling). Lots of cosmetic clean-up.
2016-10-16 07:57:16 -06:00
Gregory Nutt
275120a6d1
XTENSA: Add some context switching definitions (incomplete); ESP32: Add some dummy LED definitions
2016-10-15 14:57:06 -06:00
Gregory Nutt
eada2bf8d8
XTENSA: Add function prototypes
2016-10-15 12:23:36 -06:00
Gregory Nutt
8ffbf6d95e
XTENSA: Hook xtensa_irq.S into build
2016-10-15 11:46:21 -06:00
Gregory Nutt
4621784617
Add xtensa.h (which is call up_internal.h in other architectures.
2016-10-15 11:45:15 -06:00
Gregory Nutt
0a0278a3ca
XTENSA: Add and architecture Makefile. Initial verion is just the MIPS Makefile.
2016-10-15 11:36:48 -06:00
Gregory Nutt
43d08db1a0
XTENSA: Add some interrupt controls
2016-10-15 11:29:50 -06:00
Gregory Nutt
0be3d12ba0
ESP32: Add option for interrupt support
2016-10-15 10:11:35 -06:00
Gregory Nutt
6f35ced002
ESP32: Add peripheral interrupt IRQ numbers
2016-10-15 08:39:15 -06:00
Gregory Nutt
e3ead1db69
Xtensa: Add an initial guess at the form of struct xcpcontext
2016-10-14 13:17:48 -06:00
Gregory Nutt
c078573677
Add some .gitignore files
2016-10-13 16:29:50 -06:00
Gregory Nutt
04940840b6
ESP32 Core: Correct tool-related prefix and path
2016-10-13 14:48:29 -06:00
Gregory Nutt
43c46fd34c
ESP32 Core: Add a dummy Toolchain.defs. Fix some cloning errors left in the NSH configuration.
2016-10-13 14:40:43 -06:00
Gregory Nutt
25331aeb63
ESP32 Core: Add an NSH configuration for build testing
2016-10-13 14:37:28 -06:00
Gregory Nutt
852330876b
arch/xtensa: A little more ESP32 configuration logic
2016-10-12 14:50:28 -06:00
Gregory Nutt
55523f5771
arch/xtensa: Add a few basic XTENSA/LX6 files. Not yet enough to do anything with
2016-10-12 13:11:05 -06:00