Compare commits

...

2 Commits

Author SHA1 Message Date
2b8b776b9e Blue LED flash on CM4 2026-03-21 18:03:08 +01:00
a963ad3700 Reordered STM32 init code 2026-03-21 18:02:54 +01:00
3 changed files with 49 additions and 11 deletions

View File

@@ -122,17 +122,16 @@ int main(void) {
/* USER CODE END Boot_Mode_Sequence_2 */
/* USER CODE BEGIN SysInit */
if ((READ_BIT(SYSCFG->UR1, SYSCFG_UR1_BCM4))) {
LL_HSEM_1StepLock(HSEM, 4U);
} else {
LL_RCC_ForceCM4Boot();
}
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
if ((READ_BIT(SYSCFG->UR1, SYSCFG_UR1_BCM4))) {
LL_HSEM_1StepLock(HSEM, 4U);
} else {
LL_RCC_ForceCM4Boot();
}
/* USER CODE END 2 */
/* Infinite loop */

View File

@@ -0,0 +1,3 @@
CONFIG_GPIO=y
CONFIG_STM32H7_DUAL_CORE=y
CONFIG_STM32H7_BOOT_M4_AT_INIT=y

View File

@@ -1,11 +1,47 @@
// Copyright (C) 2026 Hector van der Aa <hector@h3cx.dev>
// Copyright (C) 2026 Association Exergie <association.exergie@gmail.com>
// SPDX-License-Identifier: GPL-3.0-or-later
/*
* Copyright (c) 2016 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdio.h>
#include <zephyr/drivers/gpio.h>
#include <zephyr/kernel.h>
#include <zephyr/sys/printk.h>
/* 1000 msec = 1 sec */
#define SLEEP_TIME_MS 1000
/* The devicetree node identifier for the "led0" alias. */
#define LED0_NODE DT_ALIAS(led0)
/*
* A build error on this line means your board is unsupported.
* See the sample documentation for information on how to fix this.
*/
static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
int main(void) {
printk("Hello from my freestanding Zephyr app!\n");
int ret;
bool led_state = true;
if (!gpio_is_ready_dt(&led)) {
return 0;
}
ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
if (ret < 0) {
return 0;
}
while (1) {
ret = gpio_pin_toggle_dt(&led);
if (ret < 0) {
return 0;
}
led_state = !led_state;
printf("LED state: %s\n", led_state ? "ON" : "OFF");
k_msleep(SLEEP_TIME_MS);
}
return 0;
}