Zhiyao's Home Page
Zhiyao's Home Page
Home
Posts
Publications
TA
Contact
Resource
Light
Dark
Automatic
Embedded
Offloading Operating System Functions to the Cloud
Zhiyao Ma
,
Samantha Detor
,
Lin Zhong
Panic Recovery in Rust-based Embedded Systems
Zhiyao Ma
,
Guojun Chen
,
Lin Zhong
SVC Can Be Invoked Asynchronously When Dynamically Changing Exception Priority on Cortex-M
SVC will be pended if a higher priority exception arrives during the stacking. If the priority of SVC is raised above the previously higher priority exception inside its handler, SVC will be activated immediately, nested above the current handler, which causes problems because the register context seen by the SVC handler is not system call arguments.
Zhiyao Ma
Jul 6, 2023
5 min read
Embedded
Read-Modify-Write On Self-Changing Registers Causes Trouble
Read-modify-write on the
cr1
register of I²C may generate two consecutive start condition and hang the peripheral.
Zhiyao Ma
Last updated on Jul 2, 2023
3 min read
Embedded
Fix Rust Library stm32f4xx-hal Causing I²C to Hang When Using DMA
The Rust HAL Library
stm32f4xx-hal
failed to set the
LAST
bit in I²C
CR2
before initiating a DMA read. We tracked down the problem with a logic analyzer and identified the fix.
Zhiyao Ma
Last updated on Apr 19, 2023
4 min read
Embedded
Resolving STM32F4xx I²C Stuck Busy After MCU Software Reset
The I²C bus may be stuck busy after a software reset if the slave peripheral is holding the SDA line upon reset. Manually generating some clock pulses on the SCL line and sending a NACK on the SDA line will make the peripheral to release the SDA line, allowing normal operation.
Zhiyao Ma
Apr 18, 2023
4 min read
Embedded
Resolving STM32F4xx I²C Stuck Waiting for Address Sent
STM32F4xx I²C can be stuck after start condition when the stop bit is set while the I²C bus is already idle.
Zhiyao Ma
Last updated on Apr 18, 2023
4 min read
Embedded
Bringing Segmented Stacks to Embedded Systems
Zhiyao Ma
,
Lin Zhong
Thumb2 Instructions Require 4-Byte Alignment Rather Than 2-Byte
We discuss why 2-byte alignment is not sufficient for thumb2 instructions even though the ISA supports an arbitrary mixture of 2- and 4-byte instructions.
Zhiyao Ma
Aug 15, 2022
2 min read
Embedded
Cite
×