in

Acceso a la memoria OP de MCU

Actualmente, estoy tratando de acceder a la memoria IO asignada de mi controlador (STM32H7A3) en C-Code.

Lamentablemente, el depurador (Segger J-Link a través de SWD) no refleja ningún cambio en la memoria IO (también los periféricos no funcionan según lo previsto).
He usado este código innumerables veces, pero parece que esta vez no funciona… ya me está golpeando la cabeza :/

Estoy usando el siguiente código:

typedef struct __PACKED__ {
  uint32_t Register;
} t_struct;

volatile t_struct* const mapio_XX = (t_struct*) (AddressXYZ);

void special_func(void){
    mapio_XX ->Register = 0xff;
}

con herramientas GNU para STM32 (10.3-2021.10) en Cortex M7 con FPv5-D16 como cadena de herramientas,

ensamblador gcc con las banderas

«-mcpu=cortex-m7 -g3 -c -x ensamblador-con-cpp –specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb»

gnu18 (ISO C18) gcc con las banderas

«-mcpu=cortex-m7 -std=gnu18 -g3 -c -O0 -ffunction-sections -fdata-sections -Wall -Wextra -pedantic -Wswitch-default -Wswitch-enum -Wconversion -fno-tree-loop-distribute- patrones -fstack-uso –specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb»

y el enlazador GCC con las banderas

«-mcpu=cortex-m7 -T»xxxxx\STM32_H7A3\linker.ld» –specs=nosys.specs -Wl,-Map=»${BuildArtifactFileBaseName}.map» -Wl,–gc-sections -nostartfiles – nodefaultlibs -nostdlib -static –specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -Wl,–start-group -lc -lm -Wl,–end-group»

bajo el STM-Cube ID 1.10.1.

¿Alguien tiene una conjetura o un consejo?

Gracias de antemano.

EDITAR:

El desmontaje por

ingrese la descripción de la imagen aquí

parece:

Asamblea

1 respuesta
1

Tenía la bandera de reinicio para el módulo periférico específico configurado en RCC en un archivo diferente (dentro de ISR). El fragmento fue un remanente de la depuración/desarrollo.

¿Te ayudó la respuesta?

Subscribirse
Notificar por
guest

0 Comentarios
Inline Feedbacks
Ver todas las Respuestas

Determine si la dirección de viaje es norte o sur según el rumbo

Evaluando la función iszero