Gregory Nutt
94910d2925
sched/: Cosmetic reordering of conditional compilation. Style is that comments related to the conditionally compiled logic are included within the conditional compipilation so that its scope and belongingness is clear.
2018-08-29 13:09:00 -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
anchao
95163b2c59
Squashed commit of the following:
...
Author: Xiang Xiao <xiaoxiang@xiaomi.com>
arch/arm/src/armv7-m: Implement SYSTICK timer driver
Author: anchao <anchao@pinecone.net>
configs/sim/loadable: Add loadable demo for arch sim
sched/init: Restore previously reverted option to mount block device for INIT_FILEPATH case
configs/stm3240g-eval/knxwm: Fix build breakage.
Author: Gregory Nutt <gnutt@nuttx.org>
configs: With recent changes to apps/ all configurations that build applications as modules must now also select CONFIG_APPS_LOADABLE.
Author: anchao <anchao@pinecone.net>
configs/sim/loadable: Add loadable demo for arch sim
Kconfig and tools/Makefile.unix and : add dynamic application loadable support
2018-08-23 11:08:22 -06:00
Xiang Xiao
377eb30129
binfmt: Add binfmt_initialize(). All binary formats are now registered centrally vs. in board-specific logic. This simplifies the usage of the binfmt subsystem.
2018-08-23 09:09:39 -06:00
Gregory Nutt
b56d5a7548
Revert "sched/init: Add option to mount block device for INIT_FILEPATH case"
...
This reverts commit e5f9b7d66b
.
2018-08-22 07:29:55 -06:00
Xiang Xiao
e5f9b7d66b
sched/init: Add option to mount block device for INIT_FILEPATH case
2018-08-22 06:57:00 -06:00
anchao
0124b629a9
sched/symtab: Reference default symtab name to binfmt
2018-08-22 06:21:20 -06:00
Gregory Nutt
8e203e09d4
Costmetic changes
2018-08-19 11:19:43 -06:00
Gregory Nutt
12474d2c38
Eliminate new warnings due to unused local variables noted in build testing.
2018-02-01 10:25:48 -06:00
Gregory Nutt
7cf88d7dbd
Make sure that labeling is used consistently in all function headers.
2018-02-01 10:00:02 -06:00
Gregory Nutt
d87b54099a
Eliminate a warning.
2018-01-31 17:54:20 -06:00
Gregory Nutt
50ca32e254
Squashed commit of the following:
...
sched/: Convert legitimate uses of task_create() to nxtask_create(). Review handling of returned values from all uses of kthread_create() (as well as nxtask_create()).
graphics/: Review return values for all calls to kthread_start() because it no longer returns an errno.
drivers/: threads started by drivers should be kernel threads, not user tasks. Review return values for all calls to kthread_start() because it no longer returns an errno.
configs/: threads started by board bringup logic should be kernel threads, not user tasksi (part 2 of 2).
sched/task: Add nxtask_create(). Kthread_create() and nxtask_create() are internal OS functions and should not modify the errno variable. configs/: threads started by board bringup logic should be kernel threads, not user tasks.
2018-01-31 16:11:54 -06:00
Gregory Nutt
134bac3810
arch/arm/src/lpc54xx: Add configuration logic to the empty SPI driver. Still missing all data tranfer logic.
2018-01-13 15:38:55 -06:00
Gregory Nutt
fdf4e40b6a
configs/lpcxpresso-lpc54628: Correct SRAM base address in all configurations.
2018-01-13 08:34:58 -06:00
Gregory Nutt
5b385f4d4d
kthread_create(): Rename kernel_thread() to kthread_create() for better naming consistency with task_create() and kthread_delete().
2017-10-16 11:38:00 -06:00
Gregory Nutt
e7c52bac60
Squashed commit of the following:
...
sched/mqueue: Rename all private static functions for use the nxmq_ vs. mq_ naming.
sched/mqueue: Rename all OS internal functions declared in sched/mqueue/mqueue.h to begin with nxmq_ vs. mq_. The mq_ prefix is reserved for standard application interfaces.
2017-10-09 09:06:46 -06:00
Gregory Nutt
8198ba6a6d
This change renames all internal, private NuttX signal-related functions to use the prefix nxsig_ so that they cannot be confused with application interfaces that begin, primarily, with sig_
...
This is analogous to similar renaming that was done previously for semaphores.
Squashed commit of the following:
sched/signal: Fix a few compile warnings introduced by naming changes.
sched/signal: Rename all private, internal signl functions to use the nxsig_ prefix.
sched/signal: Rename sig_removependingsignal, sig_unmaskpendingsignal, and sig_mqnotempty to nxsig_remove_pendingsignal, nxsig_unmask_pendingsignal, and nxsig_mqnotempty to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_findaction and sig_lowest to nxsig_find_action and nxsig_lowest to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_allocatepingsigaction and sig_deliver to nxsig_alloc_pendingsigaction and nxsig_deliver to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_cleanup, sig_release, sig_releasependingaction, and sig_releasependingsignal to nxsig_cleanup, nxsig_release, nxsig_release_pendingaction, and nxsig_release_pendingsignal to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_tcbdispatch and sig_dispatch to nxsig_tcbdispatch and nxsig_dispatch to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_releaseaction and sig_pendingset to nxsig_release_action and nxsig_pendingset to make it clear that these are OS internal interfaces.
sched/signal: Rename sig_initialize and sig_allocateactionblock to nxsig_initialize and nxsig_alloc_actionblock to make it clear that these are OS internal interfaces.
2017-10-05 13:25:25 -06:00
Gregory Nutt
83cdb0c552
Squashed commit of the following:
...
libc/semaphore: Add nxsem_getvalue() which is identical to sem_getvalue() except that it never modifies the errno variable. Changed all references to sem_getvalue in the OS to nxsem_getvalue().
sched/semaphore: Rename all internal private functions from sem_xyz to nxsem_xyz. The sem_ prefix is (will be) reserved only for the application semaphore interfaces.
libc/semaphore: Add nxsem_init() which is identical to sem_init() except that it never modifies the errno variable. Changed all references to sem_init in the OS to nxsem_init().
sched/semaphore: Rename sem_tickwait() to nxsem_tickwait() so that it is clear this is an internal OS function.
sched/semaphoate: Rename sem_reset() to nxsem_reset() so that it is clear this is an internal OS function.
2017-10-03 12:52:31 -06:00
Arjun Hary
b274a97840
Miscellaneous fixes from astyle tool.
2017-08-14 17:19:27 -06:00
Gregory Nutt
6579078287
Eliminate another warning.
2017-08-12 11:24:11 -06:00
Gregory Nutt
2245dddaf9
Break up some long lines
2017-06-14 13:42:56 -06:00
Gregory Nutt
4f5879f998
C library: Add ffs(). Add strings.h. Move strcasecmp, strncasecmp, bzero, bcmp, and bcopy to where they belong in strings.h.h, not string.h. bzero, bcmp, and bcopy are legacy functions; the contemporary counterparts should be used instead.
2017-02-16 16:10:09 -06:00
Gregory Nutt
113d8bdcca
Fix some SMP-related compilation errors
2016-12-09 17:10:59 -06:00
Gregory Nutt
018db84567
Flesh out more cancellation point logic.
2016-12-09 10:31:40 -06:00
Gregory Nutt
6a20560ba2
Trivia fix to typo in comment
2016-10-26 12:29:36 -06:00
Gregory Nutt
7370d3171a
Move include/nuttx/lib.h to include/nuttx/lib/lib.h
2016-07-21 14:05:44 -06:00
Gregory Nutt
62d8f839c7
SYSLOG: Now a two phase initialization. Some SYSLOG channels cannot be initialized until later in the bringup
2016-06-21 07:52:24 -06:00
Gregory Nutt
43eb04bb8f
Without lowsyslog() *llinfo() is not useful. Eliminate and replace with *info().
2016-06-20 11:59:15 -06:00
Gregory Nutt
13cac3b592
sched/: Change some *err() message to *info() messages if what was a *dbg() message does not indicate and error condition.
2016-06-11 16:42:42 -06:00
Gregory Nutt
a1469a3e95
Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err()
2016-06-11 15:50:49 -06:00
Gregory Nutt
e99301d7c2
Rename *lldbg to *llerr
2016-06-11 14:55:27 -06:00
Gregory Nutt
fc3540cffe
Replace all occurrences of vdbg with vinfo
2016-06-11 11:59:51 -06:00
Gregory Nutt
80d0b2736e
Reorder some logic: (1) set initial CPU IDLE task regsters AFTER allocating stack, (2) invalidate cache in CPU start-up BEFORE handling first interrupt.
2016-05-22 15:01:49 -06:00
Gregory Nutt
32838fcc2c
enter/leave_critical_section: In SMP configuration, may attempt to access the task lists before they have been initialized
2016-05-18 09:17:01 -06:00
Gregory Nutt
3d87005e5a
Fix some compilation issues when certain combinations of debug options are selected.
2016-05-17 12:06:32 -06:00
Gregory Nutt
faca2fb1e7
ARMv7-A/i.MX6: Add logic to handle allocation of CPU IDLE thread stacks more efficiently
2016-05-13 11:39:42 -06:00
Gregory Nutt
70782b0f14
ARMv7-A i.MX6: More SMP logic. Still untested.
2016-05-12 15:04:46 -06:00
Gregory Nutt
7f19631338
sched/: Add option to buffer scheduler instrumentation data in memory.
2016-03-17 09:49:43 -06:00
Gregory Nutt
2225940155
SMP: Add per-CPU initialization logic
2016-03-13 07:16:56 -06:00
Gregory Nutt
79c1fa5bd7
SMP: Simplified SMP interfaces
2016-03-12 15:29:33 -06:00
Gregory Nutt
a633353ec3
Add a CPU affinity set to the TCB if SMP is enable and use this CPU set as a mask for determining which CPUs the thread may run on. Add an affinity field to the attrributes to permit controlling which CPUs a pthread may run on. Implements pthread_att_setaffinity_np() and pthread_attr_getaffinity_np().
2016-02-19 17:33:35 -06:00
Gregory Nutt
95735519dd
SMP: Cosmetic renaming to clarify functionality of SMP interfaces. Update comments.
2016-02-17 13:36:25 -06:00
Gregory Nutt
6aeb4a52e8
Performance improvement: Idle loop should not take MM semaphore if there is not garbage to be collected. This can cause loss of performance and thrashing in tasking
2016-02-16 19:33:22 -06:00
Gregory Nutt
6dfa72d038
SMP: Fix some dumb but difficult to debug errors
2016-02-16 16:43:19 -06:00
Gregory Nutt
8774e7a4a0
SMP: Fix missing initialization value
2016-02-15 18:35:05 -06:00
Gregory Nutt
fc842d740a
SMP: os_start needs to hold the KMM semaphore to prevent threads from allocating memory until the bring-up is complete
2016-02-15 11:07:42 -06:00
Gregory Nutt
a604a86980
Fix an error introduced in a previous commit
2016-02-13 10:48:30 -06:00
Gregory Nutt
8ac699b63d
SMP: Need to perform all IDLE task memory allocations on initializatin thread prior to starting the other CPUs
2016-02-13 09:04:54 -06:00
Gregory Nutt
f45166af32
SMP: Fix a IDLE task semaphore operation
2016-02-12 18:03:08 -06:00
Gregory Nutt
3f7f58de9d
SMP: Fix some debug assertion problems when DEBUG is enabled; Partial fix for one bring-up issue
2016-02-12 17:13:38 -06:00
Gregory Nutt
7d7f4e140c
OS: Add a RUNNABLE attribute to the tasklists to indicate if the task list includes the currently executing task. Use this additional bit of information to determine if a context switch could really occur when removing a TCB from a task list
2016-02-12 08:15:16 -06:00
Gregory Nutt
c315479a04
SMP: Move IDLE thread init logic from sim to OS; need to assign unique IDs to each IDLE task
2016-02-11 14:11:26 -06:00
Gregory Nutt
ddbc948895
SMP: Minor SMP-related clean-up/improvements
2016-02-11 12:18:54 -06:00
Gregory Nutt
49227fa554
Scheduler: Replace the boolean 'prioritized' with a uint8_t bit set so that additional attributes of a list can be specified without adding more boolean values.
2016-02-11 08:06:33 -06:00
Gregory Nutt
0a7e136a5a
SMP: Idle thread must be assigned to a CPU
2016-02-11 08:01:09 -06:00
Gregory Nutt
96223cedf1
SMP: A little more
2016-02-10 15:43:05 -06:00
Gregory Nutt
3147dfc7d5
SMP: Add some tentative initialization logic
2016-02-10 13:49:27 -06:00
Gregory Nutt
47a5663f8c
SMP: A few preliminary data structure definitions
2016-02-10 11:45:26 -06:00
Gregory Nutt
2dc258986d
Add a state variable that provides the current level of OS initialization. This is needed by some logic that may attempt to run early in the start-up sequence, but cannot run if a sufficient level of initializaitn has not not yet occurred
2016-02-05 08:34:03 -06:00
Gregory Nutt
79d554939e
sched/: Fix some spacing issues
2015-10-07 19:59:14 -06:00
Gregory Nutt
cb9e27c3b0
Standardize naming used for public data and function groupings
2015-10-02 16:30:35 -06:00
Gregory Nutt
d78d3ef4ab
Logic for delayed memory garbage collection for the case of user space memory will not work as implemented for the case of the kernel build. That is because the correct context is in place in order to free the user memory when sched_kufree is called, but will not be in place later when the memory garbage collection runs. If this feature is really needed, then some more substantial redesign is required
2015-09-07 14:40:18 -06:00
Gregory Nutt
12d61531aa
Move board_ prototypes from arch.h to board.h
2015-02-27 20:02:03 -06:00
Gregory Nutt
8840102554
Networking: Divide net_intiialize() into net_setup() and net_initialize() to solve a chicken-and-egg problem. net_setup() must be caleld before up_initialize() is called so that networking data structures are ready to register new network devices.
...
net_initialize() now does only timer related operations and is called AFTER up_initialize() where the timers are configured. This is really.
2015-02-14 06:36:53 -06:00
Gregory Nutt
a1d3faaa8a
Update ChangeLog
2015-02-13 18:39:43 -06:00
Gregory Nutt
bc273596bb
Back out commit d998cbdfa6c10dbd8074dd43c39c23a006505987
2015-02-13 18:32:15 -06:00
Gregory Nutt
0fcd620404
Move the initialization of the networking subsystem to AFTER up_initialize is called. Fromo Macs Neklyudov.
2015-02-13 13:41:21 -06:00
Gregory Nutt
937f9f23f1
strncpy will not copy the terminating \0 into the destination if the source is larger than the size of the destination. Ensure that the last byte is always zero and let strncpy only copy CONFIG_TASK_NAME_SIZE bytes. The issue of unterminated names can be observed in ps when creating a pthread while CONFIG_TASK_NAME_SIZE is set to 8.
2014-12-17 12:24:02 -06:00
Gregory Nutt
1aa528a572
More fixes to problems noted by cppcheck. Some are kind of risky; some are real bugs.
2014-11-25 14:10:35 -06:00
Gregory Nutt
6f94e5e4be
Cosmetic chnages to comments
2014-11-20 07:10:48 -06:00
Gregory Nutt
b78fe7c270
Rename CONFIG_SCHED_USRWORK to CONFIG_LIB_USRWORK
2014-10-11 15:59:40 -06:00
Gregory Nutt
b2cebaa9d4
Modularize starting of worker threads to better isolate individual initialization characteristics
2014-10-10 09:38:28 -06:00
Gregory Nutt
1afc9773ac
Decoupling work queue data structures. This is part of the preparation to support multiple low-priority worker threads
2014-10-10 08:35:58 -06:00
Gregory Nutt
6220256a09
Repartition work queue code. Move kernel-specific parts from libc/wqueue to sched/wqueue
2014-10-10 06:22:51 -06:00
Gregory Nutt
322f9f401c
Simplify how C source files are selected in the build
2014-10-07 07:42:36 -06:00
Gregory Nutt
37cf4135c4
fs_initialize() is no longer weak
2014-10-06 11:45:35 -06:00
Gregory Nutt
1f2cc9f4fe
Complete re-implementation of mq_close
2014-09-29 15:33:34 -06:00
Gregory Nutt
8c958be5ab
Semaphore initialization is now only required if priority inheritance is initialized
2014-09-29 06:50:48 -06:00
Gregory Nutt
b33c2d9cef
Move include/nuttx/mm.h to include/nuttx/mm/mm.h
2014-09-24 07:29:09 -06:00
Gregory Nutt
1863370672
Move include/nuttx/shm.h to include/nuttx/mm/shm.h
2014-09-24 07:05:02 -06:00
Gregory Nutt
a73a3ef99f
Add shared memory initializatin logic
2014-09-23 08:46:31 -06:00
Gregory Nutt
fc35e35165
When a privileged thread exits, we have to use the kernel alloctor to free memory; when an unprivileged thread exits, we don't have to do anything... heap memory will be cleaned up when the address environment is torn down
2014-09-11 09:00:10 -06:00
Gregory Nutt
e958040269
Add capability to perform initial board initialization on a separate worker thread.
2014-09-03 18:36:43 -06:00
Gregory Nutt
b2a94b6f2b
Fix more places where the user-mode allocator is used to allocate kernel thread resources -- before the user-mode allocator even exists
2014-09-03 14:58:24 -06:00
Gregory Nutt
c81093913a
IDLE TCB setup needs to indicate the the IDLE thread is a privileged, kernel thread
2014-09-03 13:47:11 -06:00
Gregory Nutt
b4438e44c5
Restructuring of build to allow use of use-space allocators by kernel logic in the kernel build.
2014-09-02 11:22:09 -06:00
Gregory Nutt
a5af2568eb
sbrk() need to initialized the memory manager on the first call
2014-09-02 08:05:11 -06:00
Gregory Nutt
0e3c182e3b
Fix error in initialize of IDLE TCB due to last change. The argument list is no long in the TCB, but in the stack. But not for the IDLE task. It needs its own mini-argv[] list so that it looks more like other threads.
2014-09-01 16:49:42 -06:00
Gregory Nutt
23147c40a5
Remove final traces of the 8015 from the NuttX source tree
2014-09-01 13:21:15 -06:00
Gregory Nutt
2904fb0420
Clean up some kernel build heap allocation issues. The Cortex-A kernel build now compiles without errors (but cannot link until brk() and sbrk() are implemented).
2014-08-31 12:50:05 -06:00
Gregory Nutt
34ff07008a
Add configuration options to start the system from a program on a file system
2014-08-30 13:27:23 -06:00
Gregory Nutt
2906ff6a4a
Cosmetic: Fix all comments, defaults, etc. that references the defunct name user_start
2014-08-30 11:14:51 -06:00
Gregory Nutt
e3ff0689bb
Rename CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED; Partially integrate new CONFIG_BUILD_KERNEL
2014-08-29 14:47:22 -06:00
Gregory Nutt
e1799b0423
Cortex-A/SAMA5 address environment support is code complete (untested)
2014-08-25 11:18:32 -06:00
Gregory Nutt
e1769b22f1
Remove os_internal.h it has been replace by several new header files under sched/. There have been some sneak inclusion paths via os_internal.h, so expect a few compilation errors for some architectures
2014-08-08 18:39:28 -06:00
Gregory Nutt
d798dd37a7
Replace os_internal.h with sched/sched.h in files that actually reference something in sched.h
2014-08-08 17:53:55 -06:00
Gregory Nutt
23a334c066
Move task control files from sched/ to sched/task
2014-08-08 16:44:08 -06:00
Gregory Nutt
9afca906eb
Move initialization functions from sched/ to sched/init
2014-08-08 15:30:59 -06:00