Add a hardware definition project for the MicroZed board to the existing Zynq ZC702 project.
Add a text file that describes how to switch the Zynq project form the ZC702 hardware to the MicroZed hardware.
* PR https://github.com/FreeRTOS/FreeRTOS-Kernel/pull/350 introduced configRUN_TIME_COUNTER_TYPE and ulTaskGetIdleRunTimePercent(). This PR updates the Win32 demo to exercise both additions with configRUN_TIME_COUNTER_TYPE set to uint64_t.
* Add ultaskgetidleruntimepercent to lexicon.txt.
Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com>
Update the SiFive HiFive IAR project
1. Update to the latest toolchain.
2. Add the prints needed by CI.
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Simple blinky demo working. Not tried full demo yet.
* Get the full demo running.
* Add Eclipse project to build the RISC-V_RV32_QEMU_VIRT_GCC gcc makefile.
* Add regtest tasks to the RISC-V_RV32_QEMU_VIRT_GCC demo.
* Update priority of the timer task.
* Adjust timer frequency and optimisation level before committing prior to rearranging the Eclipse project.
* Reorganise Eclipse project slightly.
* Add note to the RISC-V-Qemu-virt_GCC readme file about the updated version in RISC-V_RV32_QEMU_VIRT_GCC.
* Update headers in newly added source files so they pass the automated header check.
* Update lexicon to pass automated spell check.
Co-authored-by: none <>
vAssertCalled() is already defined in main.c. We need to set the
related macros in FreeRTOSConfig header as well, or the boundary
checking through assert could not be executed
* Upgrade GCC project files for e2 studio v7.8.0 in Demo/RX100-RSK_GCC_e2studio folder
* Update Demo project file to e2 Studio v8 and remove the .bat file.
* Update the choice of toolchain version.
* Update the link in file header.
Co-authored-by: NoMaY (a user of Japan.RenesasRulz.com) <NoMaY-jp@outlook.com>
These tests cover the following portion in the queue code:
static void prvUnlockQueue( Queue_t * const pxQueue )
{
...
if( prvNotifyQueueSetContainer( pxQueue ) != pdFALSE )
{
/* The queue is a member of a queue set, and posting to
* the queue set caused a higher priority task to unblock.
* A context switch is required. */
vTaskMissedYield();
}
else
{
mtCOVERAGE_TEST_MARKER();
}
...
}
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Add hello world project for Vitis.
* Working hello world program.
* Remove the call to ps7_init().
* Demo moved from the XSDK project to Vitis is now compiling - not tried running yet though.
* Blink is printing out in blinky demo.
* Adjust the priorities of the demo tasks to enable them to run at once.
Update blocktim.c so it stores the line on which an error was detected in the error occurred variable rather than just setting the variable to true.
* Add launch configuration file.
Remove unused definitions from FreeRTOSConfig.h.
Edit the comments that describe what the demo does.
* Revert changes to blocktim.c, which should have been in a separate PR.
* Correct header comments in new files.
* Update headers for core checks.
* Third attempt at getting headers through the commit checks - copy headers from other files is not enough.
* Still trying to get core checks to pass.
* Update lexicon.txt
* Correct spelling in Cortex-A9 QEMU main.c.
Co-authored-by: none <>
* Update History.txt and README.md for December release (#744)
* Update History.txt and README.md for release
* Bump mbedtls submodule to v2.28.0 (#745)
* Patch project files for mbedtls (#751)
* Apply group 1 patches
* Apply patches for group 2
* Update project files for mbedTLS new version
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Fix warnings in projects
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Fix warnings in HTTP_S3_Download demo
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
* Update changelog and history for corePKCS11 update (#752)
* Update submodule pointer and manifest.yml for corePKCS11 (#754)
* Update readme and history.txt to show that Sigv4 is a newly added library (#756)
* Revert update to v143 of VS toolset (#757)
* [AUTO][RELEASE]: Bump file header version to "202112.00"
* Update file headers to satisfy core checks
Co-authored-by: Muneeb Ahmed <54290492+muneebahmed10@users.noreply.github.com>
Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
Co-authored-by: johnrhen <johnrhen@users.noreply.github.com>
* Rename the CORTEX_MPS2_QEMU_IAR directory to CORTEX_MPS2_QEMU_IAR_GCC
* Add makefile and startup.c.
* GCC build is working, but not yet running.
* Add eclipse project.
* Tidy up the linker file.
Add the debug launch file to the file system.
* Add printf-stdarg.c to the GCC build.
* Increase heap size for the GCC build.
* Copy IAR project files into a dedicated IAR build directory.
* Delete the IAR project from its original location now it is in its own build directory.
* Update headers to correct version number.
* Update lexicon.txt.
* Update core_checker.py.
* Change line endings in lexicon.txt.
* Increase the stack size of the task that prints out strings.
* Update linker script to build with older ld versions.
* Add links to the online documentation page for this demo.
* Fix line endings
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Remove linker and project files from header check
Eclipse project files have names .project and .cproject. Python splitext
will treat these as file names and not as extension and as a result, it
is not enough to just add these to ignored extension list. Instead, we
need to add them to ignored files list.
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Remove startup files from header check
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Co-authored-by: RichardBarry <richardbarry.c@gmail.com>
Co-authored-by: none <>
Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
* Added -Wall -Wextra to the Coretex M3 QEMU demo
* Fixed warnings & errors in Cortex M3 QEMU demo
* Fixed the FULL demo to compile with full errors.
* Update FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/init/startup.c
Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
* Applied the ( void ) r0 pattern to prvGetRegisterFromStack
Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
* Remove submodules of community and partner contribution repos, and stale directory of FreeRTOS+UDP
* Obselete NTP demo and rename of HTTP server demo folder
* Update manifest.yml
* Fix code to match comment; idle prioriry task should not block to yield, as then it will hardly run at all (bug affects SMP tests)
* Add RP2040 Demo - can be used for 'main' or 'smp' branch of FreeRTOS_Kernel
* move to latest main/ of FreeRTOS-Kernel
* move RP2040 demos into Community-Supported
* Update whitespace issue
Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
* Add SMP to lexicon
Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
Co-authored-by: Victor <vfernandez@maccorobotics.com>
Co-authored-by: Paul Bartell <pbartell@amazon.com>
Co-authored-by: Shivangi <66447522+gshvang@users.noreply.github.com>
* Added spell check
* All words
* Add a missing word
* Fix header checks
* Fix header checks v1
* Fix header check v2
* Updated freertos link in header
* Fixed afr link in the header
* Fix last of header checks
* Update the spell check script to check amazon licensed files only
* Fixed paths and added comments
* Try with modified repo
* Add inplace substitute option to sed
* Use official repo as the spell checker source
* Add vendor file to the ignored list
Co-authored-by: root <root@ip-172-31-5-28.us-west-2.compute.internal>
* Minor update to the UART write function in the IAR/QEMU/MPS2 demo project. Now the function checks to ensure there is space in the Tx buffer before writing to the buffer - although this does not appear to be necessary in QEMU it is more correct.
* Update main.c
Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
* Disregard coverage data without a function_name field set
* Fix calling make on subdirectories
* Undefine FORTIFY_SOURCE when running without ENABLE_SANITIZERS
* Add queue and semaphore unit tests
* Update FreeRTOS-Kernel submodule revision
* Add test for backlogged auto-reset timer
Must call vTimerDemoIncludeBacklogTests() to activate.
* Fix little style issues
- Update to new header
- Add parentheses (style)
- Remove trailing space accidentally introduced
* Don't verify full clearing of backlog
The timer task should be free to process the stop request without a
specific requirement to work through the backlog of callbacks for the
stopped timer. The timer task should be allowed to cancel the entire
backlog, part of it, or none of it. In other words, once the
application sends the stop request, it should not depend on receiving
any more callbacks, even backlogged ones.
The only requirement here is that the timer stop as requested.
Co-authored-by: Joseph Julicher <jjulicher@mac.com>
Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com>
* Put XLEN into .o files.
Makes it easier to work on voth RV32 and RV64 binaries side-by-side.
* Let the debugger disable HTIF use.
* Makefile now links the binary at BASE_ADDRESS
I need this so I can easily generate the appropriate binaries for
riscv-tests/debug. Unfortunately there doesn't seem to be any good
mechanism to externally define values for lds files, so I'm running it
through the C preprocessor.
Co-authored-by: Joseph Julicher <jjulicher@mac.com>
This CBMC test would go over the memory limit of most hosts, causing the
kernel to kill the process. With larger memory capabilities, this can be
re-enabled.
* Add RISC-V demo for the spike simulator.
* Figuring out what the header checker wants.
* Fix more headers.
* Ignore htif.c and htif.h for header checks.
These files are already stamped with BSD-3-Clause, which I'm not allowed
to remove. There are numerous other files with the same license in
FreeRTOS, so I assume this is fine.
* Use proxy syscalls for RV32.
Looks like spike won't be changed to make htif character writes work
propery for RV32.
This is now an even closer copy of the version in opensbi, which is
arguably strictly better.
* Support RV64 builds to use with spike.
OpenOCD does not currently support debugging 64-bit FreeRTOS, but now
that I have a target to test hopefully that will be remedied shortly.
* Tweak rv32 instructions.
This way you can have separate cross-tools installations that can
coexist side by side.
Co-authored-by: Joseph Julicher <jjulicher@mac.com>
* Fix Tasks.c patch, line numbers were out of sync and patching was
broken.
* Add assumption to TaskCreate proof that a task's priority is less than
the configured max.
With the introduction of
9efe10b805
an assertion is added to ensure a new task's priority is less than the
confirmed max. The CBMC proof for TaskCreate needs to include this assumption
in order to not assert and fail. Since this is now enforced in the code
we can add an assumption to the proof that a task must be created with a
priority smaller than the configured max.
* Added event_groups.c Unit Test.
* Formatted and more comments.
* Formatted
* Split some test cases and add comment and coverage tag.
* Update test cases.
* Remove xEventGroupDelete Invalid Input test case, since the implementation does not handle this.
When gcov outputs into it's intermediate json format, sometimes it marks blocks as unexecuted but also sets an execution count != 0. In this case, the "count" field is correct, but the "unexecuted_block" field is incorrect.
When outputting lcov formatted coverage data in filtercov.py, only output a branch coverage data lines (BRDA) with a "-" for the "taken" field when both count==0 and unexecuted_block==true in the input gcov json intermediate file.
Collect initial coverage data with lcov --initial and add this to coverage data to the combined coverage from each test binary.
This ensures that all functions in the target file(s) are included in coverage statistics, even if those functions are not tagged in a _utest.c file.
Note: Functions which are excluded by the preprocessor will not have initial coverage data generated for them.
* Introduce tasks that test the coherency of the reported space available in a message buffer from two separate tasks. Designed to highlight the issue reported in https://github.com/FreeRTOS/FreeRTOS-Kernel/pull/264
Introduce configRUN_ADDITIONAL_TESTS which must be set to 1 to run the new tests. That is because the new tests got added to an existing standard demo file and smaller platforms may not have the resources to run them.
Set configRUN_ADDITIONAL_TESTS to 1 in the MSVC and IAR/QEMU project so both project run the new test.
Also add missing 'volatile' qualifier in the IAR/QEMU project on some register accesses.
* Update xAreMessageBufferTasksStillRunning() to report errors from the new message buffer size coherency tests.
Co-authored-by: RichardBarry <ribarry@amazon.com>
Co-authored-by: RichardBarry <3073890+RichardBarry@users.noreply.github.com>
* Add INCLUDE_DIR to the commandline call to cflow in callgraph.py
This removes dependent functions from the list when they are disabled in the FreeRTOS config.
* Add argparse to callgraph.py so that no output file is created on failure.
* Make the address sanitizer optional
The address sanitizer is now disabled by default for CMock tests because it introduces additional branches into the compiled code. When make is run with the ENABLE_SANITIZER=1 argument, the address sanitizer is enabled and coverage data may not be accurate.
* Change from ifdef to ifeq ($(ENABLE_SANITIZER),1) to address PR comment
* Cleanup Makefiles
* Add lcovrc configuration file
* Add CMock test build directory to .gitignore
* Add callgraph.py and filtercov.py scripts
* Cleanup list Makefile and update list_utest.c with coverage tags
* Add information about coverage filtering and running single test cases
* Remove -fprofile-exclude-files for compatibility with older versions of gcc.
Fix line endings (change to unix style)
* Lint callgraph.py and filtercov.py. Print and error when no target functions are defined.
* Indent with spaces when possible
* Replace tabs with spaces and enable .RECIPEPREFIX
* Add fake_port.h and related portmacro.h changes
* Fix list makefile when bin directory is not available
* Clean up grouped rules
* Update makesfile.. Add "two_tests" example dir
* Fix memory checker error
* Move common makefile items to subdir.mk and testdir.mk includes
* Update core_checker.py exclusions
* Remove line from portmacro.h that doesn't match core_checker.py
* Initial version of the CORTEX_MPS2_QEMU_IAR - needs tidying up and so far only contains the comprehensive demo.
* Update the comment block at the top of the source files to match the latest official release.
* Split out the main_full() demo from main(). Still need to add in the main_blinky() demo.
* Add the blinky demo option.
* Tidy up the QEMU/IAR project.
* Configure the QEMU IAR project to only create the blinky demo.
* Delete readme.txt which was in the wrong directory.
* Fix errors in the comments at the top of the file as highlighted by the auto checks.
Co-authored-by: alfred gedeon <28123637+alfred2g@users.noreply.github.com>
* Enable libunitymemory extension to track dynamic memory usage during unit tests
* Use UnityMemory in timers_utest.c
* Add fake_assert.h to allow mocking of configASSERT calls
* Add .editorconfig to make github show indentation correctly
* Add unity memory and fake_assert to queue_utest.c
* Add -fsanitize=address CFLAG when running unit tests
* Define mtCOVERAGE_TEST_MARKER macro to include mtCOVERAGE_TEST_MARKER lines in coverage figures
* Add additional memory check / protection CFLAGS for CMock tests
* Fix out of bounds array access in list_utest.c
* Move the fake_assert.h include to the top of FreeRTOSConfig.h
Update to out of source makefile build and add run-cbmc-proofs.py
CBMC proofs can now be run with Litani with the command
"./run-cbmc-proofs.py"
Based on commits:
* 1646301 - Ignore CBMC proof failures, fail the build later (4 months ago) <Kareem Khazem>
* 7e8c91a - Fix Makefile prerequisite symbol for CBMC proofs (4 months ago) <Kareem Khazem>
* bee04be - Enable CBMC proofs to run in CI (4 months ago) <Kareem Khazem>
Found in https://github.com/FreeRTOS/FreeRTOS-Plus-TCP
* Implement Kernel Unit Test Framework with CMock
* Add Readme.md to unit tests
* Add Posix build checker to git actions
* Add Ruby requirement
* Fix file header checks
* Fix header checks
* Add color output to test runs
* Add Posix build checker to git actions
* fix checker path
* Fix script, checkout recursively
* fix build check script return value
* clone submodules as well with posix checker
* Add quotes to true for submodules
* Fix Submodules
* Remove pcap dependency from Makefile
* install libpcap for build check
* Add networking build to posix
* Separate network build from normal build
* add libpcap after building normal posix
* Add Full Demo to Qemu with MPS2
* Increase full demo heap memory
* Add Full Demo to Qemu MPS2
* Fix headers
* Fix header FreeRTOS version
* Remove commented line
* Remove commented line
* Fix header checker version, and corresponding files
* Fix checker version number requirements
* Fix build failure in STM32 Discovery MPU Projects
Privileged data region size needs to be increased because heap is now
placed in this region.
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Add URL file links to the MQTT agent documentation page.
Add comment blocks into each demo that also point toward the MQTT agent documentation to ensure users are aware the agent method exists.
* Moved definition of ucBufferStorage out of if macro. If ucBufferStorage is only defined when configSUPPORT_STATIC_ALLOCATION ist set to 1, compilation will fail in cases where it is set to 0 or not defined (because it defaults to 0, as described in the documenation).
* Add Makefile project for RISC-V QEMU virtpc
This patch adds simple demo directory for QEMU virtpc machine.
A demo just prints Tx/Rx message of queue to serial port, use no
other hardware and use only primary core (currently hart0).
Other cores are simply going to wfi state and execute nothing else.
Example command is:
qemu-system-riscv32 -nographic -machine virt -net none \
-chardev stdio,id=con,mux=on -serial chardev:con \
-mon chardev=con,mode=readline -bios none \
-kernel demo.elf -smp cpus=2 -s
* Fix copyright and URLS of FreeRTOS
* Fix Makefile
* Add Readme.md
* Separate blinky demo from main code
Co-authored-by: alfred gedeon <alfred2g@hotmail.com>
Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com>
Co-authored-by: Carl Lundin <53273776+lundinc2@users.noreply.github.com>
* Changed project AVR_Dx_IAR to use 'heap_1.c'.
* AVR_Dx_IAR project cleanup.
* AVR_ATMega4809_IAR project cleanup.
* Added newline at end of .gitignore file for AVR_Dx_IAR and AVR_ATMega0_IAR projects.
* deleted old version wolfSSL before updating
* updated wolfSSL to the latest version(v4.4.0)
* updated wolfSSL to the latest version(v4.4.0)
* added macros for timing resistance
* Add wolfSSL-FIPS-Ready to Demo and Source
* Add wolfSSL-FIPS-Ready to Demo and Source
* Update README_wolfSSL_FIPS_Ready.md
* Remove unused files
* Update to wolfSSL-4.5.0-FIPS-Ready
* Increase FIPS version number for the default
* Update wolfSSL to the latest version(v.4.5.0)
* Fix version number
* Fix comments from github
Co-authored-by: RichardBarry <3073890+RichardBarry@users.noreply.github.com>
Co-authored-by: Ming Yue <mingyue86010@gmail.com>
Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com>
Co-authored-by: Alfred Gedeon <alfred2g@hotmail.com>
As suggested, because logging_stack.h and logging_levels.h are used not only by demos but also by platform-specific transport code, it would make sense to move FreeRTOS-Plus/Demos/Common/Logging to FreeRTOS-Plus/Source/Logging. The same is done for demo_logging.c and demo_logging.h, which are duplicated by several demos. Win32.vcxproj project files are also updated to follow suite.
* Update AbortDelay.c so it uses both vTaskDelayUntil() and xTaskDelayUntil().
Update TaskNotifyArray.c to prevent false positive test failures that appear to be caused by unwarranted integer promotion.
Add use of xTaskDelayUntil() to blocktim.c
The .text section is listed as *(.text) and results in build
error because there are some .text* sections that are automatically put
into flash later by linker and their LMA overlaps
with .data
Co-authored-by: Ming Yue <mingyue86010@gmail.com>
Add missing power libraries. Also increase the size of the privileged
data section as heap is now placed in the privileged data section.
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
The rendezvous test in EventGroupsDemo assumed that one tick is not
enough for rendezvous to complete. Turns out that it is not true on a
system with 1ms tick and rendezvous does get complete within one tick.
This commit removes the test with one tick assumption.
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Add Renesas RX72N Envision Kit RTOS Demo using Renesas RXv3 port layer
* Refactor the workaround which makes CC-RX linker optimization working better
To be robust for future updates of Renesas RX SmartConfigurator until the cause of the problem is fixed by Renesas.
* Fix vApplicationMallocFailedHook()'s argument type generated by e2 studio.
No changes are caused in the MOT and SREC files which are built.
* Merge update of submodule (submodule's commit id)
Changes are caused in the MOT and SREC files which are built for Renesas RX72N Envision Kit RTOS Demo.
Theses RTOS Demo programs work after changes.
* Fix: Add checking DPFPU register in RegTest inline asm functions in main_full.c
* Fix and sync kernel pointer (submodule's commit id) to the same as 'upstream/master'
* Revert "Fix and sync kernel pointer (submodule's commit id) to the same as 'upstream/master'"
This reverts commit d684f749bc.
* Revert "Merge remote-tracking branch 'upstream/master' into rx700v3dpfpu"
This reverts commit 3a44473b4e, reversing
changes made to 0f4f024fe2.
* Merge remote-tracking branch 'upstream/master' into rx700v3dpfpu
* Fix and sync kernel pointer (submodule's commit id) to the same as 'upstream/master'
* Test: Fix unnecessary update of SiFive_HiFive1_RTOS_demo.url.
* Fix? unnecessary update of SiFive_HiFive1_RTOS_demo.url.
* Fix unnecessary update of SiFive_HiFive1_RTOS_demo.url.
The existing startup code was generating some warnings of the form
"Label 'xxxxx' is defined pubweak in a section implicitly declared
root". This change replaces the startup file with the one generated from
latest STM32CubeMX to fix the above warnings.
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Fix: Demo/RX100-RSK_Renesas_e2studio RTOS demo project build error
* Update project files for e2 studio v4.0.2.008 (the same as Demo/RX100_RX113-RSK_Renesas_e2studio RTOS demo project)
Co-authored-by: Ming Yue <mingyue86010@gmail.com>
* Build: transform scons into Makefile
* Build: add Makefile dependencies
* Build: remove some tabs from Makefile
* Build: Make builds out of source, move wait for event to kernel port
* Test: update the full test to print status messages
* Build: replace lpthread with pthread
Co-authored-by: Alfred Gedeon <gedeonag@amazon.com>
* Update the the path in .launch file to make it compatiable with MacOS/Linux.
* Remove .exe from command and use slash in file path
Co-authored-by: Cobus van Eeden <35851496+cobusve@users.noreply.github.com>
* Recently the prototypes for the application hook functions were
moved out of the kernel .c files and into the .h files. That
changes results in compile time warnings for projects that provide
hook functions with a slightly different prototype - in particular
where signed char * is used in place of just char * as an older
FreeRTOS coding convention required chars to be explicitly qualified
as signed or unsigned.
This checkin fixes the warnings by ensuring the signature of
implemented hook functions matches the signature of the prototypes.
* Add Eclipse/GCC project that targets the LM3S8962 QEMU model.
* Get the Cortex-M QEMU project working.
* Continue working on making stream buffer demo more robust and QEMU project.
* Rename directory CORTEX_LM3S8986_QEMU to CORTEX_LM3S6965_QEMU.
Work on making the Stream Buffer tests more robust.
Check in before adding in the trace recorder.
* Rename CORTEX_LM3S6969_QEMU to CORTEX_LM3S6969_GCC_QEMU.
* Make the StreamBufferDemo.c common demo file (test file) more robust to other test tasks running at an equally high priority.
* Work in progress checkin only - comments in main.c are incorrect.
* Correct comments at the top of FreeRTOS/Demo/CORTEX_LM3S6965_GCC_QEMU/main.c
Make the message buffer tests more robust in the case the a message buffer becomes full when prvSenderTask() has a higher priority than the reader task.
* Disable trace recorder in the LM3S6965 QEMU demo.
* I'm dropping FreeRTOS-Kernel reference update, since this seems to break the CMBC CI.
Co-authored-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>
This change updates the IAR project for Nucleo H743ZI2 to use the
cacheable DTC RAM and enables L1 cache. In order to ensure the correct
functioning of cache, the project sets configTEX_S_C_B_SRAM in
FreeRTOSConfig.h to not mark the RAM as shareable.
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Add MPU demo projects for NUCLEO-H743ZI2 board
It contains projects for Keil uVision, STM32CubeIDE and IAR EW. This
demo shows the use of newly added support for 16 MPU regions.
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Delete not needed CMSIS files
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Updated indentation in AVR_ATMega4809_Atmel_Studio and AVR_Dx_Atmel_Studio projects, plus small fixes in their readme files.
* Added AVR_ATMega4809_IAR, AVR_ATMega4809_MPLAB.X, AVR_Dx_IAR and AVR_Dx_MPLAB.X demo projects.
* Removed build artefacts and added .gitignore files in AVR_ATMega4809_MPLAB.X and AVR_Dx_MPLAB.X projects.
Co-authored-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>
* Added explicit cast to allow roll over and avoid integer promotion during cycles counters comparison in recmutex.c.
* Fixed type mismatch between declaration and definition of function xAreSemaphoreTasksStillRunning( void ).
* Added Atmel Studio demo projects for ATMega4809 and AVR128DA48.
* Per https://www.freertos.org/upgrading-to-FreeRTOS-V8.html, I'm updating portBASE_TYPE to BaseType_t.
Signed-off-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>
* Update register test for ATmega4809
- to cover r28, r29, r31.
- call public API taskYIELD() instead of portYIELD().
* Update ATmega4809 readme.md to include info for serial port setup, and minor wording fix.
Co-authored-by: Alexandru Niculae - M17336 <alexandru.niculae@microchip.com>
* Add TaskNotifyArray.c with the single task tests updated to use the task notification array up to the point where the timer is created.
* Continue working on TaskNotifyArray.c to test the new task notification indexes. Next TaskNotifyArray.c will be refactored to break the tests up a bit.
* Refactor and update the comments in TaskNotifyArray.c - no functional changes.
* Change from the task notify "array" to task notification "indexed" nomenclature in the new task notification API functions that work on one particular task notification with the array of task notifications.
* Update the implementation of the taskNOTIFY_TAKE() and taskNOTIFY_WAIT() trace macros to take the array index of the task notification they are acting on.
Rename configNUMBER_OF_TASK_NOTIFICATIONS to configTASK_NOTIFICATION_ARRAY_ENTRIES.
Add FreeRTOS/Demo/Common/Minimal/TaskNotifyArray.c to the Visual Studio project - the file implements tests specific to the behaviour of the indexed task notification functions and should be used in addition to the tests already provided in FreeRTOS/Demo/Common/Minimal/TaskNotify.c.
* Bootstrap a demo from START. No driver is added in this commit.
* Add FreeRTOS source code to project. Remove unnecessary folder nesting.
Heap_4 is used here.
* Copy over main.c, FreeRTOSConfig.h, and regtest.{c, h}.
This commit compiles, but will need some work on timer used.
* This port has 2KB RAM. We are using 1KB for heap.
Further decreasing minimum stack size, and also use stack overflow check 1 to save some stack space.
* Preserve EEPROM set to false.
* End of the line.
* Reduce register test stack size.
32 8-bit register + 10 bytes for stack frame cost. Round up to 50.
* Adding Queue test in Integer test.
- g3 to easy debugging.
- mainCHECK_PERIOD is set to 1000 ticks. Note that this port for now use WDT as tick timer, and period is set to 15ms.
- vErrorChecks, is of highest priority. So if this task gets run before other tasks, the very first check will fail.
* Avoid false alarm.
Since we don't know in which order the tasks are scheduled, clearing any error for the first entry of vErrorChecks.
Signed-off-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>
* ParTest.c to init, set, toggle onboard user LED at PB5.
* Added a task to blink onboard user LED.
Need a magic number for stack size.
Signed-off-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>
* Explicitly setting timing slicing to 0.
This is to avoid unecessary context switch when multiple tasks are of the same priority.
Signed-off-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>
* Add taskYIELD() at the end of the loop in each register test task.
This is to give other tasks of the same priority a chance to run, regardless of scheduling algorithm.
Signed-off-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>
* minor, update comment in main.c.
* Exclude FreeRTOS/Demo from CBMC proof reports.
The script cbmc-viewer generates the CBMC proof reports. The script
searches source files for symbol definitions and annotates source
files with coverage information. This patch causes cbmc-viewer to
ignore the directory FreeRTOS/Demo containing 348M of data. The
script now terminates in a few seconds.
* Make report default target for CBMC Makefile.
Modify the Makefile for CBMC proofs to generate the report by default
(and not just property checking) and modify property checking to
ignore failures (due to property assertions failing) and terminating
report generation.
Co-authored-by: Mark R. Tuttle <mrtuttle@amazon.com>
This is largely a copy of the Windows demo application with a few key
changes:
- heap_3 (use malloc()/free()) so tools like valgrind "just work".
- printf() wrapped in a mutex to prevent deadlocks on the internal
pthread mutexes inside printf().
SCons (https://scons.org/) is used as the build system.
This will be built as a 64-bit application, but note that the memory
allocation trace points only record the lower 32-bits of the address.