Commit Graph

656 Commits

Author SHA1 Message Date
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
Gregory Nutt
e3310888e2 Cosmet updates to some comments 2014-07-17 17:58:24 -06:00
Gregory Nutt
0da9aaeb09 Fix some recurring typos: postion->position, *atino->*ation 2014-07-08 13:12:36 -06:00
Gregory Nutt
3b81e58047 NET: Fix some errors in recent network I/O buffering when stack runs from interrupt level 2014-06-28 11:35:14 -06:00
Gregory Nutt
0daf30675c Fix conditional compilation for CLOCK_MONTONIC. From Manuel Stühn 2014-06-23 11:01:31 -06:00
Gregory Nutt
90b82696ac Move SAMA5D3 MPDDRC definitions to a separate header file 2014-06-10 08:11:31 -06:00
Gregory Nutt
4035ed8c6c CONFIG_START_YEAR/MONTH/DAY not required if an RTC is used 2014-05-26 07:45:15 -06:00
Gregory Nutt
44a3397283 sig_mqnotempty(): Test for a valid signal number inverted. From eero.nurkkala 2014-05-20 07:38:43 -06:00
Gregory Nutt
84d28641b7 SAM4S Xplained Pro: Clean-up of LED usage and also some integration of new timer features. From Bob Doiron 2014-05-05 14:38:29 -06:00
Gregory Nutt
79d9e9cccd If the CPU load measurements are being driven by an external clock, then the prototype for sched_process_cpuload() must be available in include/nuttx/arch.h 2014-04-30 15:47:55 -06:00
Gregory Nutt
8d758a13de The CONFIG_SYSTEMTICK_EXTCLK selection should only be available on systems that support it 2014-04-30 15:32:06 -06:00
Gregory Nutt
f7485ea962 Updated system timer logic from Bob Doiron 2014-04-30 14:46:26 -06:00
Gregory Nutt
33ddbeab16 STM32: More places where up_prioritize_irq is called when CONFIG_ARCH_IRQPRIO is not defined. Sourceforge ticket #26 2014-04-28 07:07:47 -06:00
Gregory Nutt
1909c44f87 Minor updates to READMEs and comments 2014-04-27 11:38:24 -06:00
Gregory Nutt
ee86b7afb9 ZNeo: update calibration 2014-04-25 12:38:56 -06:00
Gregory Nutt
daf6d347fc Updates to ZNeo configurations + misc cosmetic changes to comments 2014-04-25 11:59:17 -06:00
Gregory Nutt
61555fe5e1 Various SAM4S related fixes, mostely related to the timer driver driver and the SAM4S timer/counter. All from Bob Doisin 2014-04-22 09:01:20 -06:00
Gregory Nutt
a8cb0ad8f4 Add debug assertion on failure to allocate a watchdog 2014-04-21 19:16:12 -06:00
Gregory Nutt
3a1324741a More trailing whilespace removal 2014-04-13 14:32:20 -06:00
Gregory Nutt
494387b33b Make sure that there is one space after for 2014-04-12 13:28:22 -06:00
Gregory Nutt
056aed1274 Make sure that there is one space between while and condition 2014-04-12 13:09:48 -06:00
Gregory Nutt
c208b25f89 Add some checks: if getpid() or get_errno_ptr() are called very early in the initialization sequence, they would fail 2014-04-10 10:20:44 -06:00
Gregory Nutt
6be62a7ef3 configs/*/defconfig: Increase the number of pre-allocated watchdogs in configurations that use networking or USB 2014-04-09 10:57:56 -06:00
Gregory Nutt
cbdc9155ab SAMA5: Add support for DBGU. Xplained board now uses DBGU for the serial console 2014-04-01 11:24:15 -06:00
Gregory Nutt
70815e5673 sched/Kconfig: Add another layer of menuing to simply this level 2014-03-31 11:32:22 -06:00
Gregory Nutt
4f59bc5878 Add CONFIG_CLOCK_MONTONIC 2014-03-31 10:01:03 -06:00
Gregory Nutt
8772a4e104 Add support for CLOCK_MONOTONIC. From Macs N 2014-03-31 09:25:50 -06:00
Gregory Nutt
9f2ee0966a SAM4E-EK NSH: Increase the number of preallocated WDOGS to 32 to avoid timeout failures 2014-03-21 11:22:50 -06:00
Gregory Nutt
805916901a nanosleep(): Was not re-enabling interrupts. Fix from Jason Jiang 2014-03-15 07:33:05 -06:00
Gregory Nutt
7f739b0411 Support an asynchronous, 'external' clock to get better CPU load measurements 2014-02-27 14:13:53 -06:00
Gregory Nutt
cb0d49047a Fix how CPU load counts are adjusted so that the total always adds up to 100% 2014-02-27 11:16:15 -06:00
Gregory Nutt
0610be935d prtdiff_t: Defined in both stddef and sys/types 2014-02-25 12:40:49 -06:00
Gregory Nutt
3b2a3991dd A few fixes for the per-process load average calculation 2014-02-23 12:50:51 -06:00
Gregory Nutt
cf4a362ab5 CPU load calculations now available for all threads. Available in /proc/pid/loadavg 2014-02-23 10:55:01 -06:00
Gregory Nutt
59769d44f1 Add logic to meaure and calculate the CPU load percentage. From David Alessio 2014-02-22 15:20:12 -06:00
Gregory Nutt
d092f888fb Add CONFIG_DEFAULT_SMALL that will select default values for configuration settings based upon either more features or smaller footprint. Turns out not be be useful for modifying existing defconfig files because the defaults do not apply in that case 2014-02-20 18:49:45 -06:00
Gregory Nutt
3be307bc25 sched/task_terminate always return an error because return value was not being set correctory. From Gosha 2014-02-18 11:50:32 -06:00
Gregory Nutt
5bbe3a4992 configs/viewtool-stm32f107/netnsh: Increase the number of pre-allocated watchdog timers. 2014-01-22 17:14:10 -06:00
Gregory Nutt
803cdfdaf1 Changes to get PX4 config to build. Also some warning removal 2014-01-14 13:30:22 -06:00
Gregory Nutt
1da566f27b Make sure that the Z16F build still builds and runs 2014-01-01 10:29:44 -06:00
Gregory Nutt
43e47f8e78 NX server needs to be on a kernel thread for the kernel build 2013-12-30 17:55:19 -06:00
Gregory Nutt
a00e2987c4 Various changes for a clean ZNEO ZDS-II build 2013-12-19 10:01:52 -06:00
Gregory Nutt
7a173d58b5 /proc/uptime logic needs to sample timer in case multiple reads are used to read the time 2013-12-14 15:25:23 -06:00
Gregory Nutt
d6b81cc7ef A10: Timer interrupt handler 2013-12-13 12:42:26 -06:00
Gregory Nutt
7aff059fd0 Move sleep() and usleep() from sched/ to libc/unistd/. These functions now are simple wrappers for nanosleep(). Remove sleep() and usleep() from system calls; add nanosleep() to system calls 2013-12-13 07:57:13 -06:00
Gregory Nutt
342e777029 Add nanosleep() 2013-12-12 20:12:33 -06:00
Gregory Nutt
692b087d07 LM: Don't initialize .data if running in SRAM. Global missing intialize type. SAMA5 NAND: Fix for read nand in smaller chunks 2013-12-05 10:37:55 -06:00
Gregory Nutt
6e7c9b93c6 fs/procfs: Add a tiny, primitive procfs file system. Might get more interesting in the future 2013-11-13 15:59:14 -06:00
Gregory Nutt
d9f16bba82 apps/platform: A new now for platform-specific applicatin code 2013-10-30 09:04:37 -06:00
Gregory Nutt
d812f25496 sched/sched_releasetcb.c: Fix an error handling case where a pthread start-up fails early, before the task type has been saved in the TCB. It is safer to use the sched_releasetcb() task type argument instead of relying on the task type in the TCB to be valid. Reported by David Sidrane 2013-10-27 17:22:28 -06:00
Gregory Nutt
30ffd2364c Remove some warnings 2013-10-01 12:10:09 -06:00
Gregory Nutt
e1f9d22482 OS startup logic should not call group_setupidelfiles() if there is no file system support configured 2013-09-27 13:11:34 -06:00
Gregory Nutt
a72fb7dc89 Stack monitor fixes 2013-09-24 12:13:53 -06:00
Gregory Nutt
bc46b447dc Fix all occurrences of "the the" in documentation and comments 2013-08-27 09:40:19 -06:00
Gregory Nutt
c4ec723089 SAMA5 page table is cached; need to flush the cache each time that the page table is updated 2013-07-27 09:27:37 -06:00
Gregory Nutt
961837eaaf Fix an assertion 2013-06-02 16:49:41 -06:00
Gregory Nutt
4748599a43 .dSYM only needs to be in the same .gitignore files as .exe 2013-05-30 15:02:04 -06:00
Gregory Nutt
7554d2888e Upate .gitignore files. Add .dSYM. Make sure / is present where needed. Add some missing .gitignore files 2013-05-30 14:45:31 -06:00
Gregory Nutt
88c0911fb1 Various changes and bigfixes for problems detected by CppCheck 2013-05-09 14:23:34 -06:00
Gregory Nutt
1f616ecf1f Move task_terminate to its own C file to prevent drawing task_delete into the link 2013-04-25 16:23:30 -06:00
Gregory Nutt
f9b9875952 Various Kconfig files still have references to CONFIG_ variables. Some in harmless comments, some in config definionts which is not harmless. All removed 2013-04-25 15:52:00 -06:00
Gregory Nutt
86b815373a Remove up_assert_code 2013-04-25 15:19:59 -06:00
Gregory Nutt
7fe5a2b78d Minor Freedom-KL25Z updates 2013-04-24 16:46:38 -06:00
Gregory Nutt
73e48ad7b4 Some cosmetic renaming 2013-04-23 17:41:30 -06:00
Gregory Nutt
927dd57ef2 Reviewed all task exit logic. For pthread_exit() moved some logic higher in the exit sequence that could be required to block. For lower level logic kicked off by _exit(), add logic to prevent blocking when the task is not in a healthy state. 2013-04-23 16:41:43 -06:00
Gregory Nutt
b553609351 New Kconfig convention: Extra indentation in comments will render as HTML preformatted text 2013-04-22 09:10:58 -06:00
Gregory Nutt
2848f657ed Fix comments, references to the old SVN, and links to the old SVN. Replace with equivalent GIT info 2013-04-19 18:35:06 -06:00
Gregory Nutt
5187631e30 _exit() should not call atexit() or on_exit() functions; Rename task_deletecurrent() to task_exit() 2013-04-18 16:15:20 -06:00