* Added a link to the community supported demos repo in the demos readme.txt
* Update FreeRTOS/Demo/readme.txt
Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
* Update and rename readme.txt to readme.md
---------
Co-authored-by: Aniruddha Kanhere <60444055+AniruddhaKanhere@users.noreply.github.com>
Set configMAX_SYSCALL_INTERRUPT_PRIORITY to 4 instead of 5 to avoid hitting the assert in `Source/portable/GCC/ARM_CM3/port.c` (`configASSERT( ( configMAX_SYSCALL_INTERRUPT_PRIORITY & 0x1U ) == 0U ); `)
When built with PICOLIBC=1, selects picolibc as the C library, uses
semihosting to display messages and uses picolibc stdio for output.
Signed-off-by: Keith Packard <keithpac@amazon.com>
Allocate ROM for initialized thread local storage variables. Allocate
TLS offsets for all thread local storage variables.
Signed-off-by: Keith Packard <keithpac@amazon.com>
Need to add _zicsr for more recent Risc-V toolchains which don't add
this extension to the default set anymore.
Signed-off-by: Keith Packard <keithpac@amazon.com>
I get a build error when this is not set as it (or
configGENERATE_RUN_TIME_STATS) are required when using
configUSE_STATS_FORMATTING_FUNCTIONS
Signed-off-by: Keith Packard <keithpac@amazon.com>
When built with PICOLIBC=1, selects picolibc as the C library by
removing the newlib-nano linker flags and adding
--specs=picolibc.specs to the compiler flags. This also selects the
integer-only printf variant provided within picolibc to reduce flash
use by adding -DPICOLIBC_INTEGER_PRINTF_SCANF.
Signed-off-by: Keith Packard <keithpac@amazon.com>
Picolibc has an internal version of sbrk that uses slightly different
symbol names than the demo provides. Add these in the linker script.
Signed-off-by: Keith Packard <keithpac@amazon.com>
Allocate ROM for initialized thread local storage variables. Allocate
TLS offsets for all thread local storage variables.
Signed-off-by: Keith Packard <keithpac@amazon.com>
Instead of a set of POSIX-compatible APIs as needed by newlib,
picolibc needs a FILE struct allocated that references a function to
output a single character. Picolibc also doesn't need sbrk as it has
its own version
Signed-off-by: Keith Packard <keithpac@amazon.com>
For these options to be of any use, they must be passed to the
compiler when building object files and then the --gc-sections flag
must be passed to the linker.
Add -ffunction-sections -fdata-sections to CFLAGS and then add
-Wl,--gc-sections to LDFLAGS.
Signed-off-by: Keith Packard <keithpac@amazon.com>
Ensure that the handler2_address_const location will be correctly
aligned when compiled to a separate section.
Add the 'used' attribute to isr_vector to ensure it will not be elided
from the output.
Signed-off-by: Keith Packard <keithpac@amazon.com>
The configMINIMAL_STACK_SIZE was defined to PTHREAD_STACK_MIN with cast
to unsigned short. This cast cab be too restrictive and result in
truncation on some platforms. This commit removes this unnecessary cast.
Related issue - https://github.com/FreeRTOS/FreeRTOS/issues/967
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
* Expand RV32E demo support, prevent 'ebreak' looping
The RegTest tests are modified in the Qemu and HiFive demos
to support RV32E and its limited set of registers.
'ebreak' call looping is removed in RegTest. This produces
a lot of noise when debugging.
* Correct whitespace
* Remove 'ebreak' instruction calls
The ebreak instruction sets and exception
which leads to jumping around the binary. This
can make debugging difficult.
* Fix whitespace formatting
Removes the commented signing cert constant
variable from the PAL header file. The
correct location for this constant is the
aws_ota_codesigner_certificate.h file.
Prior to this commit, CBMC would emit logging information in plain text
format, which does not contain information required for the CBMC VSCode
debugger. This commit makes CBMC use XML instead of plain text.
Co-authored-by: Mark Tuttle <tuttle@acm.org>
Update the unit test for the following functions to verify that equal priority task won't be preempted
* vTaskResume
* xTaskResumeFromISR
* vTaskPrioritySet
* xTaskResumeAll
4 test cases are added to verify this scenario
* test_xTaskResumeAll_success_2_tasks_eq_prio_running_no_yield
* test_vTaskPrioritySet_success_eq_curr_prio_curr_tcb
* test_vTaskResume_success_eq_curr_prio_not_yield
* test_xTaskResumeFromISR_success_eq_curr_prio_suspended_task
Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
The tracelyzer code was declaring a local stack variable of type
`uint32_t` and passing it as output parameter to a function which
expected `uint64_t` on a 64-bit platform. This resulted in 4 byte memory
corruption. The problem was that the function signature uses
`TraceUnsignedBaseType_t` type for the output parameter which gets
defined to `uint32_t` on a 32-bit platform and to `uint64_t` on a 64-bit
platform, while the local stack variable was declared as `uint32_t`.
This commit changes the type of local stack variable to
`TraceUnsignedBaseType_t` to match the function parameter type.
Tracelyzer creates a task internally stack size of which is controlled
using TRC_CFG_CTRL_TASK_STACK_SIZE. It was earlier defined to 1024.
The POSIX port requires the stack size to be minimum PTHREAD_STACK_MIN.
The commit updates the TRC_CFG_CTRL_TASK_STACK_SIZE to
PTHREAD_STACK_MIN.
The demo directory contained one extra trcConfig.h and
trcKernelPortConfig.h. This commit deletes those files.
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>