Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
4b0d848
Fixed CORE-V-MCU deploy.sh scripts (#32)
fdesbiens Jun 12, 2026
93ca8fa
feat(stm32f767zi): refactor BSP and add NetX Duo Echo demo (#39)
alieissa-commits Jun 19, 2026
1bddd17
STMicro Nucleo-F401re: implemented comprehensive ThreadX RTOS monitor…
AmmarOkla12772 Jul 20, 2026
71f059c
Network-connected Environmental Station Demo (#44)
alieissa-commits Jul 21, 2026
9d0c435
Merge remote-tracking branch 'origin/main' into dev
fdesbiens Jul 22, 2026
82f7ad5
Added generic BSP framework and PolarFire SoC Icicle Kit target (#49)
AmmarOkla12772 Aug 31, 2026
70f7da9
Relocated NUCLEO_F401RE to targets and adopted generic BSP framework …
AmmarOkla12772 Aug 31, 2026
ef61eae
Added Renode regression tests for the NUCLEO-F401RE target (#51)
fdesbiens Aug 31, 2026
4143776
Corrected the target template to describe how the framework actually …
fdesbiens Aug 31, 2026
1ff7ae1
Pinned the Arm toolchain to 14.3.Rel1 and adopted the ThreadX install…
fdesbiens Aug 31, 2026
a166e86
Pinned the RISC-V toolchain to xPack GCC 14.3.0 (#54)
fdesbiens Aug 31, 2026
bba3b91
Pinned the NUCLEO Renode download and cached every toolchain fetch (#55)
fdesbiens Aug 31, 2026
92707e0
Moved the startup self-tests and RAM sizing behind new BSP interfaces…
fdesbiens Aug 31, 2026
4ddc8b4
Moved the demo into apps/ and made both targets build it (#57)
fdesbiens Sep 1, 2026
962dc1e
Normalized the AI disclosure comment to one fixed line per file (#69)
fdesbiens Sep 15, 2026
8a133d7
Added the NXP i.MX RT1064-EVK target with three demos and Renode CI
alieissa-commits Sep 16, 2026
0c9f73b
Normalized the AI disclosure in the MIMXRT1064-EVK target (#71)
fdesbiens Sep 17, 2026
91e185a
Documented the MXChip Newlib runtime glue (#68)
fdesbiens Sep 17, 2026
72d7017
Updated SampleX contribution guide for board workflows (#75)
fdesbiens Sep 30, 2026
338380e
Added an STM32 NUCLEO-F429ZI sample (#47)
Jaxc Sep 30, 2026
f85e22e
Fixed CORE-V CLI host tests (#64) (#77)
fdesbiens Sep 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
442 changes: 442 additions & 0 deletions .github/workflows/ci.yml

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,6 @@ CTestTestfile.cmake
*.log
shared/lib/netxduo/*
shared/lib/threadx/*
STMicroelectronics/STM32F767ZI-Nucleo/lib/stm32cubef7/
STMicroelectronics/STM32F767ZI-Nucleo/lib/netxduo/

370 changes: 324 additions & 46 deletions CONTRIBUTING.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/button_handler.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#include "button_handler.h"
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/button_handler.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#ifndef _BUTTON_HANDLER_H
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/fosgame.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#include "fosgame.h"
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/fosgame.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#ifndef _FOSGAME_H
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#include <stdio.h>
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/menu.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/
#include "menu.h"
#include "screen.h"
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/menu.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#ifndef _MENU_H
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/screen.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#include "screen.h"
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/screen.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#ifndef _SCREEN_H
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/slotmachine.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#include "slotmachine.h"
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/slotmachine.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#ifndef _SLOTMACHINE_H
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/snake.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#include "snake.h"
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/snake.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#ifndef _SNAKE_H
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/space.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#include "space.h"
Expand Down
2 changes: 1 addition & 1 deletion MXChip/AZ3166/app/arcade/space.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Sébastien Heurtematte - 2026 version.
*
*
* // Some portions generated by Co-Pilot
// Portions of this file were generated with AI assistance.
*/

#ifndef _SPACE_H
Expand Down
4 changes: 2 additions & 2 deletions MXChip/AZ3166/deps/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ set(TARGET app_common)
# Initialize sources
set(SOURCES "")

# Allow to disable the newlib stubbing
# Add the sample's Newlib system-call glue unless the BSP provides its own.
if(NOT DEFINED DISABLE_NEWLIB_STUB)
list(APPEND SOURCES
newlib_nano.c
Expand All @@ -32,4 +32,4 @@ target_link_libraries(${TARGET}
azrtos::netxduo
jsmn
nanoprintf
)
)
24 changes: 24 additions & 0 deletions MXChip/AZ3166/deps/src/newlib_nano.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/*
* Copyright (c) Microsoft
* Copyright (c) 2024 Eclipse Foundation
* Copyright (c) 2026 Eclipse ThreadX contributors
*
* This program and the accompanying materials are made available
* under the terms of the MIT license which is available at
Expand All @@ -13,6 +14,29 @@
* Frédéric Desbiens - 2024 version.
*/

// Some portions generated by Codex (GPT-5).

/*
* Bare-metal C library integration for the MXChip sample.
*
* Newlib and newlib-nano implement the C library, but delegate services that
* normally come from an operating system to target-provided system calls.
* This file supplies the subset needed by this sample. The board console in
* app/common/console.c supplies _read() and _write() separately.
*
* These functions are not part of ThreadX or its POSIX compatibility layer.
* The exact system calls required by an application depend on the Newlib
* version and configuration, the linker specifications, and the C library
* routines that the application uses.
*
* Several functions below are minimal stubs because the sample has no file
* system or process model. The _sbrk() implementation is also sample-specific:
* it starts the C library heap at the linker-defined _end symbol, has no upper
* bound, and provides no synchronization. Applications that allocate from
* multiple threads, use a different memory layout, or require the unsupported
* services must provide suitable replacements in their BSP.
*/

#ifdef __GNUC__

#include <stdio.h>
Expand Down
2 changes: 2 additions & 0 deletions OpenHW/CORE-V-MCU/cli-test/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
add_executable(cli_tests
test_cli_commands.c
mock/cli_mock.c
mock/cli_core_mock.c
mock/hardware_mock.c
../app/app_commands.c
)

Expand Down
22 changes: 22 additions & 0 deletions OpenHW/CORE-V-MCU/cli-test/tests/mock/cli_core_mock.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/***************************************************************************/
/* Copyright (C) 2026 Eclipse ThreadX contributors
*
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
*
* SPDX-License-Identifier: MIT
***************************************************************************/

#include "cli.h"

void CLI_uint32_required(const char *name, uint32_t *puthere)
{
(void)name;
*puthere = 0U;
}

void CLI_submenu_handler(const struct cli_cmd_entry *pEntry)
{
(void)pEntry;
}
24 changes: 24 additions & 0 deletions OpenHW/CORE-V-MCU/cli-test/tests/mock/gpio.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/***************************************************************************/
/* Copyright (C) 2026 Eclipse ThreadX contributors
*
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
*
* SPDX-License-Identifier: MIT
***************************************************************************/

#ifndef GPIO_H
#define GPIO_H

#include <stdint.h>

void gpio_setpinmux(uint8_t io_pad, uint8_t mux);
uint8_t gpio_getpinmux(uint8_t io_pad);
void gpio_set(unsigned long mask);
void gpio_clear(unsigned long mask);
void gpio_toggle(unsigned long mask);
void gpio_pin_set_dir(uint8_t pin, uint8_t mode);
uint32_t gpio_pin_read_status(uint8_t pin);

#endif
50 changes: 50 additions & 0 deletions OpenHW/CORE-V-MCU/cli-test/tests/mock/hardware_mock.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/***************************************************************************/
/* Copyright (C) 2026 Eclipse ThreadX contributors
*
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
*
* SPDX-License-Identifier: MIT
***************************************************************************/

#include "gpio.h"

void gpio_setpinmux(uint8_t io_pad, uint8_t mux)
{
(void)io_pad;
(void)mux;
}

uint8_t gpio_getpinmux(uint8_t io_pad)
{
(void)io_pad;
return 0U;
}

void gpio_set(unsigned long mask)
{
(void)mask;
}

void gpio_clear(unsigned long mask)
{
(void)mask;
}

void gpio_toggle(unsigned long mask)
{
(void)mask;
}

void gpio_pin_set_dir(uint8_t pin, uint8_t mode)
{
(void)pin;
(void)mode;
}

uint32_t gpio_pin_read_status(uint8_t pin)
{
(void)pin;
return 0U;
}
14 changes: 14 additions & 0 deletions OpenHW/CORE-V-MCU/cli-test/tests/mock/uart_driver.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/***************************************************************************/
/* Copyright (C) 2026 Eclipse ThreadX contributors
*
* This program and the accompanying materials are made available under the
* terms of the MIT License which is available at
* https://opensource.org/licenses/MIT.
*
* SPDX-License-Identifier: MIT
***************************************************************************/

#ifndef UART_DRIVER_H
#define UART_DRIVER_H

#endif
22 changes: 18 additions & 4 deletions OpenHW/CORE-V-MCU/cli-test/tests/test_cli_commands.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,23 @@
static int test_version_output(void)
{
const struct cli_cmd_entry *menu;
const struct cli_cmd_entry *misc_menu;
const char *output;

cli_mock_reset();
menu = app_get_menu();
if ((menu == NULL) || (menu[0].pHandler == NULL))
if ((menu == NULL) || (menu[0].pHandler == NULL) || (menu[0].cookie == 0))
{
return 1;
}

menu[0].pHandler(&menu[0]);
misc_menu = (const struct cli_cmd_entry *)(uintptr_t)menu[0].cookie;
if ((misc_menu == NULL) || (misc_menu[0].pHandler == NULL))
{
return 1;
}

misc_menu[0].pHandler(&misc_menu[0]);
output = cli_mock_get_output();
if (strstr(output, "CORE-V MCU ThreadX") == NULL)
{
Expand All @@ -44,15 +51,22 @@ static int test_version_output(void)
static int test_version_no_crash(void)
{
const struct cli_cmd_entry *menu;
const struct cli_cmd_entry *misc_menu;

cli_mock_reset();
menu = app_get_menu();
if ((menu == NULL) || (menu[0].pHandler == NULL))
if ((menu == NULL) || (menu[0].pHandler == NULL) || (menu[0].cookie == 0))
{
return 1;
}

misc_menu = (const struct cli_cmd_entry *)(uintptr_t)menu[0].cookie;
if ((misc_menu == NULL) || (misc_menu[0].pHandler == NULL))
{
return 1;
}

menu[0].pHandler(&menu[0]);
misc_menu[0].pHandler(&misc_menu[0]);
return 0;
}

Expand Down
Loading
Loading