Gregory Nutt
|
1ef758d67f
|
A couple more changes for clean ELF build
|
2014-09-16 15:40:48 -06:00 |
|
Gregory Nutt
|
925fc9ad81
|
First round of changes to get the ELF configuration building again
|
2014-09-16 15:37:05 -06:00 |
|
Gregory Nutt
|
701719b2ca
|
Don't release user stack in kernel build. Already destroyed with all of the address environment
|
2014-09-15 12:45:41 -06:00 |
|
Gregory Nutt
|
a5e30ac4a1
|
execv() is a basic system interface. It should not be in libc/ but rather in sched/task. Its symboltable helper logic also belongs in the kernel but belings in binfmt/ with the other symbol table logic
|
2014-09-15 10:16:20 -06:00 |
|
Gregory Nutt
|
da7a440b35
|
execv() is a basic system interface. It should not be in libc/ but rather in sched/task. Its symboltable helper logic also belongs in the kernel but belings in binfmt/ with the other symbol table logic
|
2014-09-15 10:15:19 -06:00 |
|
Gregory Nutt
|
3649dab9bd
|
Initial integration of kernel stack (does not work)
|
2014-09-14 11:19:34 -06:00 |
|
Gregory Nutt
|
e12213592b
|
Don't build task_create() or task_spawn() interfaces if there is an addres environment
|
2014-09-14 08:22:21 -06:00 |
|
Gregory Nutt
|
eae146d641
|
Kernel proxy thread should be a kernel thread, not a user task
|
2014-09-14 08:20:40 -06:00 |
|
Gregory Nutt
|
ba7d5acf94
|
Fix a couple more places where the wrong allocator is being used
|
2014-09-11 15:56:04 -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
|
44499ed46c
|
Rename some functions and reshuffling some paramters
|
2014-09-11 08:37:06 -06:00 |
|
Gregory Nutt
|
81a4de4a4d
|
Kconfig choice value needs a prompt
|
2014-09-11 07:18:33 -06:00 |
|
Gregory Nutt
|
4a20cd65c5
|
clock_gettime.c: Fix a cornercase bug in clock_gettime()
|
2014-09-10 17:10:54 -06:00 |
|
Gregory Nutt
|
c19659d7d2
|
Fixes to clock bias logic. Remove vestiges of g_tickbias; apply bias instead to g_basetime
|
2014-09-10 16:36:25 -06:00 |
|
Gregory Nutt
|
e953fb11cd
|
A const storage class to to phthread parameters. From Freddie Chopin
|
2014-09-08 06:21:48 -06:00 |
|
Gregory Nutt
|
1822b86373
|
Fix some conditional compilation in kernel build mode. And, while we are touching this logic, make g_default_pthread_attr const.
|
2014-09-07 10:46:58 -06:00 |
|
Gregory Nutt
|
47d55c28dc
|
Mostly cosmetic changes
|
2014-09-04 10:28:38 -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
|
fd6205b62a
|
Group creation logic must use new group flag when allocating resources so that the privileges on the resource are set correctly
|
2014-09-03 13:49:35 -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
|
64ab35b399
|
There used to be two ways to pass parameters to new tasks, depending upon the configuration: Either (1) argv[] as created as an array with each string strdup'ed. Or (1) argv[] array and strings were created on the stack before the new task was started. Now, there is only one way, way (1). Way (2) might be slightly more compact, but this is not worth carry the complexity of two different ways of doing the same thing.
|
2014-09-01 15:39:34 -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
|
205260d5e2
|
Reanem kzalloc to kmm_zalloc for consistency
|
2014-08-31 17:34:44 -06:00 |
|
Gregory Nutt
|
1780810d3d
|
Rename kmalloc to kmm_malloc for consistency
|
2014-08-31 17:26:36 -06:00 |
|
Gregory Nutt
|
54fa3b0b59
|
Rename kfree to kmm_free for consistency with other naming conventions
|
2014-08-31 17:04:02 -06:00 |
|
Gregory Nutt
|
9aca0c1c84
|
Rename kumalloc to kumm_malloc and kuzalloc to kumm_zalloc for consistency with other naming
|
2014-08-31 16:24:24 -06:00 |
|
Gregory Nutt
|
9ad7dae4c1
|
Rename kufree to kumm_free for consistency with other naming
|
2014-08-31 16:15:11 -06:00 |
|
Gregory Nutt
|
9cd1ddada4
|
Rename kmemalign to kmm_memalign and krealloc to kmm_realooc for consistency with other naming
|
2014-08-31 15:27:37 -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
|
67a54fd52e
|
ARMv7-A: A little more logic and a few more fixes for Cortex-A kernel build
|
2014-08-31 07:15:46 -06:00 |
|
Gregory Nutt
|
fc7bd31e07
|
last change alters semantics of __HAVE_KERNEL_GLOBALS
|
2014-08-30 14:44:48 -06:00 |
|
Gregory Nutt
|
2029236ed0
|
Back out and replace recent kludges for errno and clock_systimer. There is a cleaner way
|
2014-08-30 14:26:56 -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
|
0ab1b0de25
|
nuttx/sched: Remove explicit references to errno. That is a problem from within the kernel for certain configurations
|
2014-08-28 17:00:24 -06:00 |
|
Gregory Nutt
|
9ab67dce75
|
In some configurations, g_system_tmer must be extern'ed as a private variable
|
2014-08-28 17:00:03 -06:00 |
|
Gregory Nutt
|
45f3328247
|
Fix an error introduced into ALL implmentations of interrupt dispatch logic
|
2014-08-28 08:41:57 -06:00 |
|
Gregory Nutt
|
d35723749b
|
Minor address environment clean-up. Cannot generate debug contexts in certain contexts
|
2014-08-27 14:22:00 -06:00 |
|
Gregory Nutt
|
ad53cabf34
|
ADDRENV: Use a group flag to determine if there is an address environment (instead of the thread type)
|
2014-08-27 09:37:28 -06:00 |
|
Gregory Nutt
|
582800a04d
|
Add group_addrenv() which will be called during context switches in order to change address environments. Not yet hooked in
|
2014-08-26 14:57:05 -06:00 |
|
Gregory Nutt
|
af22f273d3
|
Add group_addrenv() which will be called during context switches in order to change address environments. Not yet hooked in
|
2014-08-26 14:54:39 -06:00 |
|
Gregory Nutt
|
1725946447
|
Misc changed to get the SAMA5 ELF configuration with address environments working
|
2014-08-25 13:28:13 -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
|
1624e2fbcf
|
Change CONFIG_ADDRENV to CONFIG_ARCH_ADDRENV; change how it is selected -- the architecure must first declare support
|
2014-08-24 06:42:11 -06:00 |
|
Gregory Nutt
|
e79d6e3c8b
|
A few fixes for compilation errors due to recent address environment fixes
|
2014-08-22 15:55:00 -06:00 |
|
Gregory Nutt
|
4e699b00de
|
Need to release the addess environment when the task group is released
|
2014-08-22 14:49:05 -06:00 |
|
Gregory Nutt
|
1d586e6136
|
An address environment is the property of a task group, not of a thread
|
2014-08-22 12:32:34 -06:00 |
|
Gregory Nutt
|
fd484c4de9
|
Add support for statically allocated watchdog timer structures
|
2014-08-22 08:46:34 -06:00 |
|
Gregory Nutt
|
ad9b3f8ab8
|
wdog.h does not contain any application interface, only internal OS interface. Further, it is non-standard. Move wdog.h from include/ to include/nuttx. For the same reason, move the description of the watchdog timer interfaces from the Users Guide to the Porting Guide.
|
2014-08-21 11:16:55 -06:00 |
|
Gregory Nutt
|
952d87587f
|
If we run out of pre-allocated watchdog times, the logic will allocate additional timers from the heap. A reserve of pre-allocated watchdog timers is maintained so that there will always be timers available for interrupt handlers.
|
2014-08-21 08:44:29 -06:00 |
|
Gregory Nutt
|
27c48a383e
|
Don't do 64-bit calculations if accuracy not achievable; Fix compile error in high res RTC mode
|
2014-08-15 17:48:07 -06:00 |
|
Gregory Nutt
|
eed1d6c619
|
When reading the system timer, don't read a struct timespec, convert it to a fake tick count, then back to a timespec. Remove CLOCK_ACTIVETIME.. it is non-standard, unused, and gets in the way of changes like this
|
2014-08-15 03:55:41 -06:00 |
|
Gregory Nutt
|
2bc07a03ae
|
Correct release notes, updat changelog, fix some conditional compilation
|
2014-08-15 06:56:42 -06:00 |
|
Gregory Nutt
|
569a0815ca
|
Updated comments
|
2014-08-12 13:50:18 -06:00 |
|
Gregory Nutt
|
6546fa39c7
|
Tickless Stuff: Back out the risky timer operations when the ready-to-run list is modified. That is unsafe. An ugly workaround is just to keep an interval timer going all of the time with a minimum duration equal to the timeslice interval.
|
2014-08-12 11:12:00 -06:00 |
|
Gregory Nutt
|
686e5d7e3d
|
Tickless: If using an ALARM, then really should report time of expiration
|
2014-08-12 10:00:32 -06:00 |
|
Gregory Nutt
|
66803d0db6
|
Define interfaces to use an alarm instead of an interval timer with the tickless option
|
2014-08-12 07:28:41 -06:00 |
|
Gregory Nutt
|
e1fc925705
|
Minor update to handling of timeslick delay on tast switches
|
2014-08-11 15:07:15 -06:00 |
|
Gregory Nutt
|
56196ecea1
|
Fix a computation error in the fix for the last computational error
|
2014-08-11 12:07:49 -06:00 |
|
Gregory Nutt
|
b4bbe354fd
|
Fix inaccurate time conversion. Remove MSEC_PER_TICK and convert uint32_t to uin64_t.
|
2014-08-11 11:14:40 -06:00 |
|
Gregory Nutt
|
649ef76f71
|
Timers: In Tickless mode, need to stop the interval timer before inserted a new delay into the timer list. Otherwise, the time is incorrect on the first entry of the list
|
2014-08-11 08:25:25 -06:00 |
|
Gregory Nutt
|
f2058fa271
|
Comment out reassessment of timer in the middle of context switches. Need to revisit
|
2014-08-11 07:05:47 -06:00 |
|
Gregory Nutt
|
6bd52bce06
|
Tickless OS: Correct a bug: logic to detect changes in head of timer list was wrong.
|
2014-08-10 13:12:18 -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
|
0be5f2ca81
|
Move exit.c to task/exit.c
|
2014-08-08 18:38:04 -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
|
1f28365f55
|
Part of the last incomplete change
|
2014-08-08 17:45:54 -06:00 |
|
Gregory Nutt
|
ccf4ed2148
|
Partial (non-working) checked in before the big, risky automated change
|
2014-08-08 17:29:44 -06:00 |
|
Gregory Nutt
|
224ee05957
|
Move a few files in sched/ that did not seem to have a home to sched/signal and sched/task
|
2014-08-08 16:57:47 -06:00 |
|
Gregory Nutt
|
23a334c066
|
Move task control files from sched/ to sched/task
|
2014-08-08 16:44:08 -06:00 |
|
Gregory Nutt
|
6683d749ac
|
Move errno related files from sched/ to sched/errno
|
2014-08-08 15:52:55 -06:00 |
|
Gregory Nutt
|
9afca906eb
|
Move initialization functions from sched/ to sched/init
|
2014-08-08 15:30:59 -06:00 |
|
Gregory Nutt
|
a79ecce878
|
Move page fill sources from sched/ to sched/paging
|
2014-08-08 15:08:07 -06:00 |
|
Gregory Nutt
|
f8da16a8d3
|
Move POSIX timer files from sched/ to sched/timer/
|
2014-08-08 14:55:16 -06:00 |
|
Gregory Nutt
|
d4b56eb3cc
|
Move clock functions from sched/ to sched/clock
|
2014-08-08 14:43:02 -06:00 |
|
Gregory Nutt
|
85e8117062
|
Move interrupt dispatch logic from sched/ to sched/irq
|
2014-08-08 14:31:15 -06:00 |
|
Gregory Nutt
|
0f318e9249
|
Move watchdog functions from sched/ to sched/wdog
|
2014-08-08 14:21:48 -06:00 |
|
Gregory Nutt
|
4ff17b3904
|
Move group logic from sched/ to sched/group
|
2014-08-08 14:06:42 -06:00 |
|
Gregory Nutt
|
e10a23ae50
|
Move environment files from sched/ to sched/environ
|
2014-08-08 13:53:29 -06:00 |
|
Gregory Nutt
|
cb79407ced
|
Move all pthread files from sched/ to sched/pthread
|
2014-08-08 12:55:02 -06:00 |
|
Gregory Nutt
|
0385a00a60
|
Move signal-related files from sched/ to sched/signal
|
2014-08-08 12:44:44 -06:00 |
|
Gregory Nutt
|
08879ca34c
|
Move POSIX message queue files from sched/ to sched/mqueue
|
2014-08-08 12:31:23 -06:00 |
|
Gregory Nutt
|
5ee57bda59
|
Some final tickless OS bugfixes. No longer EXPERIMENTAL. Update some comments
|
2014-08-07 19:11:22 -06:00 |
|
Gregory Nutt
|
c9661ad5a7
|
Change all time conversions. Yech. New timer units in microseconds breaks all existing logic that used milliseconds in the conversions. Something likely got broken doing this, probably because I confused a MSEC2TICK conversion with a TICK2MSEC conversion. Also, the tickless OS no appears fully functional and passes the OS test on the simulator with no errors
|
2014-08-07 18:00:38 -06:00 |
|
Gregory Nutt
|
17ea50b45e
|
Fix compler error in tickless code when round robin scheduling is enabled. Other cosmetic fixes to comments
|
2014-08-07 14:14:09 -06:00 |
|
Gregory Nutt
|
0aa7209765
|
Change CONFIG_MSEC_PER_TICK to CONFIG_USEC_PER_TICK. This gives more options for system timers in general, but more importantly, let's us realize higher resolution for the case of CONFIG_SCHED_TICKLESS=y -- of course, at the risk of some new interger overvflow problems
|
2014-08-07 13:42:47 -06:00 |
|
Gregory Nutt
|
caba61999a
|
Remove CONFIG_DISABLE_CLOCK
|
2014-08-07 12:35:24 -06:00 |
|
Gregory Nutt
|
520a51a3e1
|
Implements the tickless OS
|
2014-08-07 11:39:16 -06:00 |
|
Gregory Nutt
|
aaafcfd688
|
if CONFIG_SCHED_TICKLESS is defined, then the global variable g_system_timer does not exist.
|
2014-08-06 18:29:05 -06:00 |
|
Gregory Nutt
|
a1ae9d36df
|
Don't build in sched_processtimer.c if CONFIG_SCHED_TICKLESS is selected.
|
2014-08-06 18:28:51 -06:00 |
|
Gregory Nutt
|
b0324c00ee
|
Uses interval timer interfaces to get the time if CONFIG_SCHED_TICKLESS is selected.
|
2014-08-06 18:28:08 -06:00 |
|
Gregory Nutt
|
a93fdc165d
|
Use the clock_systimer() macro, do access the g_system_timer() global directly.
|
2014-08-06 18:27:35 -06:00 |
|
Gregory Nutt
|
0452b1555b
|
if CONFIG_SCHED_TICKLESS is defined, then the global variable g_system_timer does not exist
|
2014-08-06 18:26:16 -06:00 |
|
Gregory Nutt
|
f0eb4235d1
|
Add a new option CONFIG_SCHED_TICKLESS to enable the tickless OS. This is a work in progress but should be relatively safe since the new features are only enabled by this option (Safer but not 100% safe since it does not protect from typos and other dumb errors).
|
2014-08-06 18:25:42 -06:00 |
|
Gregory Nutt
|
19abe47a6f
|
sem_wait: Use set_errno() and get_errno(). Direce access inside the OS may not be supported in the future.
|
2014-07-31 15:01:37 -06:00 |
|