c-task-manager

Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2024-07-26
14:09
SVP 27JUL2024: Wrote paragraphs for windows port. Leaf check-in: dc047a9d29 user: scotty tags: trunk
13:31
SVP 26JUL2024: Windows port update. - ports/windows-vc/simulatedio.c , .h, ...timer.c : Added copies of these from the linux source. - ports/windows-vc/test1.c: Took this from the linux source and reworked for windows. - ports/windows-vc/testtarget.h : Updated for windows. check-in: 08a8b31938 user: scottyw tags: trunk
12:24
SVP 26JUL2024: Manual section on Linux port. check-in: 7f662d041a user: scotty tags: trunk
06:26
SVP 26JUL2024: Building on Linux 32 and 64 bit. - Makefile, ports/Makefile: Added linux-test2. - doc/...: Added linux images for the manual, and an image of the AVR T2 board. - ports/linux/Makefile: test1 and test2 now build for 32 and 64 bit target. - ports/linux/linux.c: Updated - ports/linux/simulatedio.c, ...h: Stub for simulated IO. - ports/linux/test1.c: Fashioned from the avr test module. - ports/linux/testtarget.h: Added important stuff for using ANSI and the terminal routines. - ports/linux/timer.c: Moved the timer code into here. - ports/putint.c: Changed the type decl to putint_t, and fixed integer truncation when using long. - ports/stdtermout.c: Terminal out to stdout on Linux. check-in: 1fe73fe184 user: scotty tags: trunk
2024-07-23
13:34
SVP 23JUL2024: Linux Makefile target renaming. check-in: 8ecc6a524d user: scotty tags: trunk
13:31
SVP 23JUL2024: More manual and Linux port. - Makefile, ports/Makefile: Linux test renamed. - doc/manual.tex: Added avr8 test notes. - ports/avr8/test1.c: This needs to be rewritten. - ports/example/taskmanagerconfig.h: Sample file. - ports/linux/Makefile: reworked along lines of the avr8 Makefile. - src/taskmanager.c: removed unused var check-in: c541deb1ac user: scotty tags: trunk
04:56
SVP 23JUL2024: finished very brief Implementation Specific chapter. check-in: b42f1eb77f user: scotty tags: trunk
2024-07-22
23:37
SVP 23JUL2024: More work on manual and some code cleanup. - Makefile, ports/Makefile, ...: Renamed the tests/ directory to ports/. - doc/manual.tex: Additional work on implementation specific stuff. - ports/ansi.c: Added termCusorBackLine(). - ports/avr8/avr8.c, ...: Universally changed pid_t to ctpid_t. - ports/avr8/test2.c: Added more metrics display for the avr port. check-in: 7860fb786d user: scotty tags: trunk
2024-07-21
11:18
SVP 21JUL2024: - tests/ansi.c: Added termCursorToCol and termCursorNextLine. - tests/avr8/Makefile: Added avr-size report after build. - tests/avr8/test2.c: Added RedrawMetrics(). check-in: 9053e7be6d user: scotty tags: trunk
2024-07-20
08:33
SVP 20JUL2024: AVR test2 now shows switch state in Ui, read from Io. - tests/ansi.c: Changed termCursorTo() to always send row and col, because gtkterm doesn't default to 1 when missing; Added termClrScrn(). - tests/avr8/t2iopins.c: Moved DIPSW to PORTB where the PCB shows them (no schematic for the v2.1 board), and added readDipSwitch(). - tests/avr8/test2.c: At boot we paint table headings and boot message has more time; IoProcess() now reads switches and flags the UiProcess to redraw; UiProcess() now paints the switch table; Split PaintTableHeadings() out of ShowTasks() which is now PaintTaskTable(); - tests/debounce.c, ...h: Added basic 8 switch debounce. check-in: 10e9c1925c user: scotty tags: trunk
06:40
SVP20JUL2024: ANSI escape sequences supported. - doc/notes/....: Added avr testing logs and notes. - tests/ansi.c, ...h: Ansi escape sequences for terminal. - tests/avr8/test2.c: Added ansi terminal sequences, and fixed the low fuse byte BOD setting. - tests/avr8/testtarget.h: Decls for both putint and the ansi module. - tests/avr8/uart.c: Split uartPutsP into putTermConstStr and putTermStr. - tests/putint.c: Output function is now putTermCh(). check-in: fd961d0c78 user: scotty tags: trunk
2024-07-19
00:06
SVP 19JUL2024: avr8 test2 has uart output from the UiProcess. First successful test on the T2 board with Uart output and yield on buffer full. - tests/avr8/t2iopins.c: Added restoreLED() and clearLED(). - tests/avr8/test2.c: In UiProcess() added simple Uart message output. - tests/avr8/uart.c: uartPutc() clears the LED and restores either side of the yield call. check-in: 8d2970fe45 user: scotty tags: trunk
2024-07-18
13:00
SVP 18JUL2024: Optimise for size on AVR. check-in: 2e24797d7d user: scotty tags: trunk
12:41
SVP 18JUL2024: Running 3 tasks on T2 board. - tests/avr8/t2iopins.c: Fixed green LED pin. - tests/avr8/test2.c: Main task with GREEN LED output, IO process with blue, and UI process with red but no RS232 output yet. check-in: b84b8ef345 user: scotty tags: trunk
12:24
SVP 18JUL2024: First avr-test2 running on the board. - Makefile, tests/Makefile: Simplified MAKE_ARGS. - tests/avr8/Makefile: Fixed the link target and added the flash target. - tests/avr8/taskmanagerconfig.h: Removed TASK_MANAGER_TESTING. - tests/avr8/test2.c: Added BootBlink as basic life test for the board. check-in: 5c0bf777f0 user: scotty tags: trunk
09:59
SVP 18JUL2024: Added missing header file, lost this morning. check-in: 2b8776cbc0 user: scotty tags: trunk
09:53
SVP 18JUL2024: Fixes for avr8 taskmanagerconfig function names. check-in: 93ade8bc4d user: scotty tags: trunk
09:46
SVP 18JUL2024: Test2 for the T2 board. This commit partially recovers some files created last night but lost this morning due to faulty clean rule. Lesson: commit before testing new Makefile. - Makefile: Restructured the avr8 rules. - doc/fig-4th-tsk-stk-part.tex: This shows the 4th task now. - doc/fig-stk-diags.tex: Added 4th task coordinates. - doc/manual.tex: Documented Stopping a tasking and Starting a new task. - src/taskmanager.c: Carved InitStackMem() out of SetupStackAndNextState(); ctask_yield() sets the used flag when running a task now, ctask_create() will init the stack if the stack was used. - src/tminternal.h: Added the used flag. - tests/Makefile: Added all new avr8 targets. - tests/avr8/Makefile: Partially reworked for multi target. - tests/avr8/avr8.c: Removed all the timer stuff to tests/avr8/timer..... - tests/avr8/t2iopins.c: Added the T2 IO pins here and access functions. - tests/avr8/taskmanagerconfig.h: Restored this but incorrectly. - tests/avr8/test2.c: New test for the T2 board. - tests/avr8/uart.c, ...h: Moved the UART code into here from the main test module. - tests/putint.c: Reworked to fix a problem with unsigned numbers. check-in: da1f130380 user: scotty tags: trunk
2024-07-12
13:48
SVP 12JUL2024: More manual writing. - Makefile: Fixed rules for building pdf manual. - doc/fig-4th-tsk-stk-part.tex, ...fig-ctsk-sht-dwn.tex: Additional stack diagrams. - doc/fig-main-tsk-stk-part.tex: Updated. - doc/manual.tex: API stuff completed and the How It Works is all but 2 sections. - doc/test-figs.tex: Additional diagrams to test. - src/taskmanager.c: In ctask_yield() the ctask_halt_notifier() call is now optional (implementation specific). - src/taskmutex.c: ctask_mutex_unlock() now checks if the mutex is locked before unlocking. check-in: 0502914088 user: scotty tags: trunk
2024-07-11
13:07
SVP 11JUL2024: Redrew the stack diagrams for How it Works. check-in: 6137189268 user: scotty tags: trunk
2024-07-09
23:04
SVP 10JUL2024: Moved the manual's stack diagrams into own tex files for testing. check-in: 58e8e533f6 user: scotty tags: trunk
2024-07-08
13:16
SVP 8JUL2024: Manual editting and diagrams. - doc/fig-2nd-tsk-stk-part.tex, ...fig-main-tsk-stk-part.tex, ...fig-typ-stk-mac.tex: Moved these diagrams out of the manual into their own files. - doc/manual.tex: Some edits from months ago, and the diagrams are now included as latex input. check-in: 373bd92b0b user: scotty tags: trunk
2024-03-19
22:28
SVP 20MAR2024: Change state/istate to resume/restart, yield now detects shutdown. check-in: 94152e7e5c user: scotty tags: trunk
12:26
SVP 19MAR2024: manual progressing. Added ctask_reset() and ctask_shutdown(). check-in: e51cdd3960 user: scotty tags: trunk
2024-03-18
22:51
SVP 19MAR2024: Manul chapter 3 coming along well. Added stubs for ctask_reset() and ctask_shutdown(). check-in: 5d9da43259 user: scotty tags: trunk
2024-03-13
04:26
SVP 13MAR2024: Finished documenting the main API. - doc/manual.tex: Completed the main API. - src/taskmanager.c: ctask_init() returns the main task's pid; Added ctask_has_halted() and ctask_get_errorcode(). - src/tminternal.h: pid is now a separate field in tcb_s. check-in: a11f45e462 user: scotty tags: trunk
2024-03-12
12:13
SVP 12MAR2024: current manual committed. - doc/manual.tex: manual with partial API. - src/taskmanager.c: ctask_yield() now halts overflow tasks with error code, the current task is suspended just after it's checked, I removed RUNNING from the tasks we look to resume, and now a 1 is returned when resuming. check-in: 8ad3af0bc6 user: scotty tags: trunk
2024-03-08
06:12
SVP 8MAR2024: Lock mutex correction. - src/taskmutex.c: Fixed lock error in ctask_mutex_lock(). check-in: 28f7d99f39 user: scotty tags: trunk
2024-03-07
12:49
SVP 7MAR2024: Renamed API and added Mutexes - src/taskmanager.c: Moved the memcpy etc functions from here to header; Renamed all API functions ctask_xxx; ctask_yield() now checks for corrupted TCB current task. - src/taskmutex.c: Added mutex API. - tests/avr8/avr8.c: API renamed, and PIC32 tests the Mutex API. check-in: 45d2778762 user: scotty tags: trunk
06:20
SVP 7MAR2024: putInt() supports hex strings and leading zeros. check-in: 66b9ce7aa9 user: scotty tags: trunk
2024-03-06
13:16
SVP 6MAR2024: Fixed GetFrameUnused() bug on PIC32. - Makefile, tests/Makefile: Added simpic32 target. - doc/notes/PIC32 debug notes.txt: PIC32 debug notes. - src/taskmanager.c: Fixed result in GetFrameUnused(). - tests/pic32/Makefile: Fixed XC_VERSION command line. - tests/pic32/test1.c: Implemented DumpTasks(), and main loop falls out after 2000 cycles for a summary report. - tests/pic32/testtarget.h: Missing putIntCh() decl. check-in: 753f3937e7 user: scotty tags: trunk
2024-03-05
22:59
SVP 5MAR2024: Build and ran PIC32MX test project. - Makefile, tests/Makefile: Added testpic32 target. - local/use-xc32-....: Scripts for setting up the local environment (I have 3 version of XC32 installed). - tests/pic32/...: Added a PIC32 test project for the MPLAB simulator. - tests/pic32/mplab/...: Project file for testing with MPLAB sim. check-in: dd7e15be54 user: scotty tags: trunk
2024-03-01
04:16
SVP 1MAR2024: Merged the avr8 port into main. check-in: 76635c06f8 user: scotty tags: trunk
2024-02-29
23:03
SVP 1MAR2024: Successful in Linux 32 and 64 bit mode. - doc/notes/Linux debug notes.txt: Notes for each mode. - doc/notes/taskmanager-with-debug-output.c: Saved copy with debug output in SaveNextInitialTaskState(). - tests/linux/Makefile: Added BUILD_SIZE. - tests/linux/testtarget.h: Increased stack size and added TEST_SYS_NAME. Leaf check-in: c192467341 user: scotty tags: port-avr8
2024-02-28
12:32
SVP 28FEB2024: Added notes file for Windows. check-in: 21014595e8 user: scottyw tags: port-avr8
12:32
SVP 28FEB2024: Building on Windows. - tests/testcore.c : Added system name to the sign on message, int and pointer size, and printing of tcb and jmp_buf sizes. - tests/windows-vc/taskmanagerconfig.h : Added more defs to build on Windows.- tests/windows-vc/testtarget.h : Extra stuff for windows. check-in: 22b5a5c24d user: scottyw tags: port-avr8
07:40
SVP 28FEB2024: In AVR8 removed UartPuts - unused. check-in: 161d502034 user: scotty tags: port-avr8
07:38
SVP 28FEB2024: Corrected AVR8 for building on Linux. - doc/notes/Linux debug notes.txt: My notes for Linux. - tests/linux/Makefile: Removed CUSTOM_CFLAGS which have been moved to the header file. - tests/linux/taskmanagerconfig.h: Updated this for the new c-task-manager. - tests/testcore.c: Added taskmanagerconfig.h include; Added checks for TASK_MANAGER_USES_TCB_MAGIC before printing those; And dumpTasks() stops now when it finds an TC_UNUSED TCB. check-in: 8db458e85b user: scotty tags: port-avr8
06:16
SVP 28FEB2024: Successful test on AVR8 with RS232 output. - doc/notes/AVR debug notes.txt: My notes and analysis. - src/taskmanager.c: Added default functions taskManagerGetByte(), taskManagerMemcpy(), and taskManagerMemcmp(). - tests/avr8/taskmanagerconfig.h: Added AVR8 taskManagerGetByte() and taskManagerMemcpy(). - tests/avr8/test1.c: Fixed UartPutsP() to increment the pointer; In ShowTasks() I added the missing breaks. check-in: 775da85000 user: scotty tags: port-avr8
2024-02-27
13:16
SVP 28FEB2024: AVR UI task with UART output. - src/taskmanager.c: Magic arrays now have MAGICATTR which can be defined externally (PROGMEM on AVR); taskYield() makes the stack overflow notification call before halting/stopping tasks; HasFrameOverflowed() uses taskManagerMemcmp if defined. - src/taskmanager.h: include taskmanagerconfig.h so the user defs are available from the get go. - tests/avr8/taskmanagerconfig.h: A more complete definition including taskManagerMemcmp. - tests/avr8/test1.c: The UiProcess now has complete output with ShowTasks() via UART; Fuse definitions are now included in this source. - tests/putint.c: Added this with simple formatted number output. check-in: 73462a6682 user: scotty tags: port-avr8
2024-02-24
22:45
SVP 24FEB2024: First successful multi tasks on AVR8. - .fossil-settings/ignore-glob: Added fossil comments. - src/taskmanager.c, ...tminternal.h: TCB magic fields now optional (TASK_MANAGER_USES_TCB_MAGIC); - tests/avr8/Makefile: CPU_CLK now here. - tests/avr8/avr8.c: Fixed setupSystemTimer() to enable interrupts. - tests/avr8/taskmanagerconfig.h: TASK_MANAGER_STATIC_QUEUE here instead of Makefile. - tests/avr8/test1.c: Put all observable data into state (for gdb display); We now launch IoProcess and UiProcess from main, and main() checks getTaskStackFree() for each task. check-in: b54da4c5cc user: scotty tags: port-avr8
04:02
SVP 24FEB2024: First successful test on AVR (atmega8) with simavr and avr-gdb. - Makefile, tests/Makefile: Added testavr8 and simavr8 targets. - src/taskmanager.c: removed extraeous dumpTasks(). - tests/avr8/Makefile: Added sim target to run simavr and avr-gdb with the elf output. - tests/avr8/...: Simple test on AVR doesn't do much yet. check-in: f05aa100f3 user: scotty tags: port-avr8
2024-02-22
11:49
SVP 22FEB2024: Added skeleton for the avr8 port. check-in: 4ffa2dae6f user: scotty tags: port-avr8
11:33
SVP 22FEB2024: - src/taskmanager.c: taskYield() now checks this stack and previous stack for overflow; Replaced HasFrameOverflowed() with memcmp(). - tests/linux/taskmanagerconfig.h: removed include tminternal. check-in: ae25618c34 user: scotty tags: trunk
2024-02-21
10:27
SVP 21FEB2024: Added the doc state diagram. check-in: 7d0bfade57 user: scotty tags: trunk
2024-02-18
12:26
SVP 18FEB2024: Testing again on Windows 7. - tests/windows-vc/taskmanagerconfig.h : Added taskStackOverflowed(). - tests/windows-vc/testtarget.h : Increased stack size to 12288. - tests/windows-vc/windows.c : Replaced pid_t with int (can't forward reference). check-in: 36305370cc user: scottyw tags: trunk
11:50
SVP 18FEB2024: Implemented taskWakeup(). check-in: 88c0d7a114 user: scotty tags: trunk
11:32
SVP 28FEB2024: Added stack overflow detect. - src/taskmanager.c: Added HaltOrStop() for these two functions; Renamed the API to unify with the word "task" first; Simplified taskStop() and taskHalt(); Added stack overflow checking to taskYield(); GetTasksStructure() returns const ptr. - tests/linux/linux.c: Added taskStackOverflowed(). - tests/testcore.c: Renamed API functions. check-in: 960938b6a0 user: scotty tags: trunk
10:37
SVP 18FEB2024: And with -O3 optimisation on linux. check-in: 795f5480bc user: scotty tags: trunk
10:35
SVP 18FEB2024: Linux build corrections. - src/taskmanager.c: Fixed SetupStackAndNextState() VLA stack allocation missing name; Fixed GetFrameUnused() to set result then break. - tests/linux/Makefile: Added dependancy files. - tests/linux/taskmanagerconfig.h: Moved USES_.. method in here. - tests/linux/testtarget.h: Moved linux stack sizes in here. - tests/testcore.c: Added stack dumps through the 3 tasks at different times; Corrected stack space summary. check-in: cd2032c3ca user: scotty tags: trunk