Skip to main content
The 2024 Developer Survey results are live! See the results

Questions tagged [cortex-m]

For all ARM Cortex-M series cores, including M0, M0+, M1, M3, M4, M7, M23 and M33.

cortex-m
1 vote
0 answers
52 views

Local variable allocation crashes the stack in embedded C on cortexm4 and operating system

Details: embedded C, cortex M4 with operating system (RTX Kernel), compiled with ARM Compiler V5.06 update6 and Microlib. Inside a periodic task there are some functons call, one is a debug function: /...
Catosh's user avatar
  • 315
2 votes
0 answers
50 views

ARM Cortex M4 context switching: How does the hardware know where xPSR, PC, LR, R12, R3-R0 are on the stack?

I'm working on a context switching mechanism for my RTOS which runs on Cortex-Ms. When I initialize a task's stack, I have it like this Then, I decrement the stack pointer 8 times to fit R11-R4. I ...
Tsz Kit Koon's user avatar
0 votes
1 answer
22 views

Is the libsnark library compatible with the arm-none-eabi toolchain for ARM Cortex-M microcontrollers?

I am currently working on a project that involves implementing cryptographic protocols on ARM Cortex-M microcontrollers, specifically the Raspberry Pi Pico (RP2040). I am interested in using the ...
Aymen Basly's user avatar
0 votes
1 answer
35 views

Can i boot from sram when i use arm cortex m3

normally,we boot from flash or ROM, but what if i want to boot from SRAM area(0x20000000_0x3fffffff) instead of Code area(0x00000000_0x1fffffff), should i use startup.s to copy the code to SRAM area? ...
ADemonevil's user avatar
0 votes
0 answers
47 views

Unwinding Stack on Cortex-M with FreeRTOS: Handling Interrupts and Stopping Conditions

I am writing an unwinder for a Cortex-M (an ARM processor) running FreeRTOS. It mostly works, and I can trace the stack in many cases, but I have encountered a few issues that I haven't been able to ...
Theo Bessel's user avatar
0 votes
1 answer
41 views

Taking FreeRTOS as an example, how to separate the kernel from the application? (Physical)

enter image description hereBackground: FreeRTOS, Cortext-M3 Suppose there is a situation where the kernel and application are developed separately, and the .text segment of the kernel and the ...
Rost Zhong's user avatar
1 vote
1 answer
52 views

How/When exactly does Cortex-M4 (STM32 F4) switch its R13 from MSP to PSP? Do i have to manually switch if using PSP in inline asm?

I'm writing my own RTOS and I'm implementing the context switch function, where I have to use PSP. The function is written in inline assembly I was working on another project on STM32 F4 writing ...
Tsz Kit Koon's user avatar
3 votes
1 answer
53 views

Missing ELF symbol for extern const float?

I have seen Missing ELF symbol "var" when using GDB? , but this is a different issue. I am using gdb with RP2040 over openocd. Unfortunately I cannot provide a full code that reproduces the ...
sdbbs's user avatar
  • 5,129
1 vote
1 answer
103 views

How to correctly implement delay after enabling RCC peripheral clock?

I'm new to STM32 microcontrollers. I would like to know how to correctly implement 2-clock-cycle delay after enabling RCC peripheral clock. Section 5.2.16 (page# 134) of https://www.st.com/resource/en/...
user2953113's user avatar
2 votes
0 answers
82 views

Embedded C++ - Header-only library optimization level

I mainly develop firmware for ARM Cortex M using gcc and I am migrating from C to C++ and even though I am overall happy with the transition, there are some things that I just can't get right. ...
sblanco's user avatar
  • 31
0 votes
0 answers
27 views

Build valgrind to target LPC55S69(which is based on Armv8-m architecture)

I'm trying to build valgrind to target baremetal arm cortex-m (based on armv8-m architecture). The host is a x86 wsl environment. How do I specify this while trying to configure valgrind. For ex: To ...
randomranger409's user avatar
0 votes
1 answer
37 views

ARM Cortex-M Trustzone (ab)use to isolate third party application

I am new to trustzone on the Cortex-M and am wondering if I can use it to isolate a third party application from a bunch of legacy code. The idea would be to move the legacy code with freertos into ...
ted's user avatar
  • 4,949
0 votes
0 answers
17 views

VSCode Arduino environment, SAMD51J19A, persistent DummyHandlers

I've been developing an embedded application for months for an Adafruit Feather M4 Express board. I'm using the VSCode Arduino environment, and it's been going well, up until: After putting down the ...
Robert Jay Weber's user avatar
0 votes
0 answers
11 views

How to determine if interrupts are enabled Arm Cortex M4F (STM32G44)

I have a function that is called when the interrupts are enable and other times when disabled and it must behave different depending on the interrupt enabled state. I reviewed the reference manual but ...
dnaviaux's user avatar
0 votes
2 answers
47 views

Can I service the SysTick interrupt while already in HSEM interrupt (STM32H745, M4 core)?

I have a situation where my software enters a HSEM interrupt (with the M4 core) and while it is servicing that interrupt it is ignoring the SysTick interrupt. Exiting the HSEM interrupt is dependent ...
Alex Jegers's user avatar
0 votes
0 answers
35 views

Ho to use CMSIS-Core (Cortex-M) for TM4C123GH6PM and TM4C129ENCPDT in Code Composer Studio

I'm trying to write drivers for TM4C129ENCPDT and TM4C123GH6PM in Code Composer Studio(Linux). I prefer to use CMSIS and not Tivaware. I'm unable to get the CMSIS-Core Device Files (provided by ...
Arunava's user avatar
0 votes
0 answers
15 views

Can't find the 'No Access' permission in Cortex M55 MPU

I'm trying to configure the MPU region, but I can't find the 'No Access' permission. There are only Read/Write permission. How can I configure a memory region to 'No Access' in Cortex M55? I read a ...
강호성's user avatar
0 votes
1 answer
42 views

Analyzing Relocations in ARM for cortex-m4

I'm trying to understand how to correctly read the relocation entries generated by my ARM compiler (I'm using (GNU Arm Embedded Toolchain 9-2020-q2-update) 9.3.1 20200408 (release)). To my ...
I.Y.A.L's user avatar
1 vote
0 answers
19 views

Position-Indipendent FW for Cortex M

Due to a educational requirement, I need to write a FW that can be run in RAM at non-predetermined locations. First of all I don't know which gcc parameters are needed, although I think it's either -...
mastupristi's user avatar
  • 1,408
0 votes
0 answers
32 views

How TBB and DCB work in branching the flow?

I am new to ARM Cortex and facing difficulty to understand how TBB branches. Code snippet attached: TBB [PC,R1] BrTable1 DCB ((P0 - BrTable1)/2) DCB ((P1 - BrTable1)/2) Now, my understanding is as ...
Lalit Arora's user avatar
0 votes
1 answer
64 views

ARM GCC fails to create a working binary for STM32F4, lot of discarded code

I've been migrating all my STM32 projects to Codeblocks IDE and GCC compiler (arm-none-eabi). The process is using STM's CubeMX to generate the base code, then merge everything to a proper folder with ...
ggadde29's user avatar
0 votes
1 answer
34 views

MPU protected region not protected against EEFC_FCR ES erasure (cortex m4)

I set up an MPU region on a Cortex-M4 with AP encoding 000 (no access), MPU->RBAR = address | (1 << 4) | (1 << 0); MPU->RASR = (1 << 17) | (1 << 3) | (1 << 0); MPU-&...
zeb92's user avatar
  • 73
1 vote
1 answer
92 views

Detect if running inside QEMU

I'm working on some bare metal Cortex-M4 code. It usually runs on a dev board, but to run unit tests I emulate it under QEMU. However, some hardware configurations are done differently depending on ...
swineone's user avatar
  • 2,684
1 vote
0 answers
48 views

MCU SysTick infinite loop

During the development of an embedded device, I encountered a one time bug with no interruptions working. It's important to understand that this device usually works fine, and has been for a few years ...
mescande's user avatar
1 vote
1 answer
171 views

ARM Cortex-M PC and SP values - reset behavior

I am trying to understand the ARM cortex-M hardware behavior on reset; particularly how the SP and PC values are written upon a cold start or hard reset. Basically, it would seem the hardware (aka PE ...
NeedToKnow's user avatar
0 votes
0 answers
15 views

When debugging with J-link, where is the program executed?

I used the SDK provided by DesignStart to build a minimal system based on Cortex M3 in Verilog language, using an SRAM module to connect I-code, D-code to act as on-chip Flash, and another SRAM module ...
chen zhang's user avatar
0 votes
3 answers
167 views

How to perform a MCU reset after a specific hardfault?

As I didn't find an existing questions on stackoverflow or on google, please find the context below. I'm investigating an issue leading to 2 different hardfaults on ARM Cortex-M33. The first one ...
Issylin's user avatar
  • 520
0 votes
1 answer
47 views

Is there a way to add Local Symbol names in the ELF file by adding debug flags to the arm-none-eabi-gcc compiler?

I am able to view the global symbols such as functions, global/static variables in the final built executable in elf file. I am looking for compilation flags that can add the local variable names into ...
Ranjith Kumar's user avatar
0 votes
0 answers
42 views

STM32 stall after implementing STOP2 mode. Implementation of a interrupt based keyboard in Nucleo-L412KB

I have implemented a serial keyboard with a Nucleo-L412KB board (bare-metal). The switches are arranged in nine rows (output pins driven high) and seven cols (input pins pulled-down, with interrupts ...
Victor Modamio's user avatar
0 votes
0 answers
47 views

Why veneer code generated by gcc for cortex-m0 seems 8-byte aligned?

The interesting observation I made recently while using GCC to compile for a Cortex M0 is that the veneer code generated in my project appears to be aligned to 8-byte boundaries. Slightly modify the ...
mzhou's user avatar
  • 11
0 votes
0 answers
178 views

STM32G030 refuses write to flash

The microcontroller throws an error when I'm trying to modify its flash. The memory looks to be unlocked, here is screenshot of option bytes The microcontroller is soldered into a custom board, with ...
larts's user avatar
  • 67
0 votes
1 answer
77 views

Unable to read value from gpio set as input

I am working on a custom board with two IMX7ULP. The thing I'm trying to do seems quite simple, the A7 from one IMX7ULP send a signal to the M4 of the other IMX7ULP, just an electrical signal, one of ...
Nathan's user avatar
  • 1
0 votes
0 answers
85 views

Microcontroller hangs with LWIP UDP

I am using LWIP TCP/IP Stack on SAME70 without RTOS. Microcontroller hangs and stops responding after few seconds. it stops sending data over serial I echo UDP data back to the client for testing, ...
Sidk's user avatar
  • 1
0 votes
1 answer
88 views

Can't connect ST-Link with APM32F003 through OpenOCD

I'm using CLion and try to debug my APM32F003 base project with ST-Link. I cannot determine what the problem is with ST-Link. I'm using Geehy's OpenOCD build with APM32F003 config files. My project ...
ReasonX's user avatar
  • 31
1 vote
2 answers
94 views

VTOR not found in STM32F030

when attempting to jump to the bootloader App code address on an STM32F030 microcontroller . I cannot find the vector table offset register. Can anyone provide guidance on how to successfully perform ...
Kishor Giri's user avatar
-1 votes
1 answer
111 views

Unit tests on registers with bare metal programming

I'm trying to do a unit test by using the library "check.h" on a register containing a hexadecimal number to check if the return value is correct. The registers are for programming an ...
Norronas's user avatar
0 votes
0 answers
35 views

Force .bss section to be in last program header

I'm wondering if it's possible to force the .bss section (or any section for that matter) to be put in the last program header in my linker script, or using some other tool after linking? My issue is ...
MulattoKid's user avatar
0 votes
0 answers
98 views

J-Link script to flash program in S32K144 (allow security)

I want to secure S32K144 using J-Link script but not able to program the security bits and hence verification failed. So how to specify device S32K144 (allow security) in J-Link script? I have ...
user23506599's user avatar
-1 votes
1 answer
56 views

Cortex-M external interrupt occurs when executing fault handler with higher priority

What happens when a lower priority interrupt from a peripheral occurs while the cortex-m is executing a higher priority fault handler? Will it be ignored or will it trigger a hardfault?
rand0m_scr1pt_k1dd1e's user avatar
-1 votes
1 answer
71 views

Why gcc is not using S16-S31 registers of Cortex M7?

Cortex M7 with the FPv5 extension has 32 single precision floating point registers (or 16 double precision registers). GCC version 10.3.1 20210824 (release) (GNU Arm Embedded Toolchain 10.3-2021.10) ...
Wojciech Jakóbczyk's user avatar
6 votes
2 answers
226 views

Issue with measuring ARM MCU interrupt latency

Introduction I am a student who wants to roughly measure the interrupt latency of ARM Cortex-M series chips without using an oscilloscope. However, I have encountered a very peculiar issue that has ...
MasterLu's user avatar
1 vote
1 answer
62 views

What is the most efficient way to write two (for example) bits of a register using cortex-m0 instruction set?

Simple example. We want to write '01' bits in the most right bits of register. Should we reset '0' bit and set '1' bit separately? Is there a way to do it in a single instruction? For instance, if the ...
user9893356's user avatar
0 votes
3 answers
127 views

How to do unaligned int store on ARM Cortex M4? [duplicate]

How can C code take advantage of the Cortex M4's unaligned 4-byte store instruction? *(int*)p = x mostly works, but occasionally I end up with something like this: void Store(uint8_t* p, uint32_t a, ...
personal_cloud's user avatar
0 votes
0 answers
55 views

FreeRTOS Faults on Optimization

Environment The dev environment is Microchip (ex-Atmel) Studio. The target processor is a ATSAMC21G18A on a custom PCB. FreeRTOS version 8.0.1 is being used, being provided directly by ASF. How ...
Smith's user avatar
  • 103
0 votes
0 answers
142 views

I cant get my thread context switching code to work (ARM procesor)

Im developing a "operating system" on ARM. My context switching code for swapping between tasks is not working. I have a function demo() which I am calling in main. In this I am creating a &...
ajsdiubfaoishd's user avatar
0 votes
0 answers
54 views

writing and reading from the same memory address from two different QEMU instances

I have a code to write "Hello" at the memory address 0x10000000, and another code to read the value from this memory address and print it out. I have defined 0x10000000 as a shared memory in ...
ankita7's user avatar
1 vote
2 answers
748 views

Debug not working with Cortex-Debug on relocated application on STM32

I'm working on STM32F407 device, developing a Bootloader and Application The environnement is Visual Studio Code, and using Cortex-Debug extension for the debug. The bootloader at address 0x0800 0000 ...
AntoineN's user avatar
0 votes
1 answer
51 views

Why sub instruction modifies the xpsr register and puts a carry flag for 9-7

I'm using STM32cubeIDE and debugging assembly on a cortex m4. I meet a strange behaviour when trying the instruction SUB. according to documentation,the SUB instruction shouldn't change the XPSR ...
Catchi's user avatar
  • 21
0 votes
0 answers
135 views

qemu: fatal: Lockup: can't escalate 3 to HardFault (current priority -1)

I have encountered this error while working with QEMU, specifically a Hardfault error when emulating the MPS2AN505 with a Cortex-M33 core. The error I am facing is as follows: qemu: fatal: Lockup: can'...
sanj's user avatar
  • 1
1 vote
1 answer
99 views

Mysterious ARM Opcode

In decompiling a hex file for a Texas Instruments ARM (Thumb 2) Cortex-M4f processor (CC2652RB), I have come across an opcode that I can't figure out. What does "90 FF FF 00" do (maybe the ...
bobuhito's user avatar
  • 297

15 30 50 per page
1
2 3 4 5
29