Skip to content

Commit 1d021eb

Browse files
committed
stm32h7: Make inline function used in bootloader always_inline
1 parent 71932c0 commit 1d021eb

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/platform/stm32h7/stm32h7_clk.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,18 +113,21 @@
113113

114114

115115

116+
__attribute__((always_inline))
116117
static inline void
117118
clk_enable(uint16_t id)
118119
{
119120
reg_set_bit(RCC_BASE + (id >> 8), id & 0xff);
120121
}
121122

123+
__attribute__((always_inline))
122124
static inline void
123125
clk_disable(uint16_t id)
124126
{
125127
reg_clr_bit(RCC_BASE + (id >> 8), id & 0xff);
126128
}
127129

130+
__attribute__((always_inline))
128131
static inline int
129132
clk_is_enabled(uint16_t id)
130133
{

src/platform/stm32h7/stm32h7_reg.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,55 @@
22

33
#include <stdint.h>
44

5+
__attribute__((always_inline))
56
static inline void
67
reg_wr(uint32_t addr, uint32_t value)
78
{
89
volatile uint32_t *ptr = (uint32_t *)addr;
910
*ptr = value;
1011
}
1112

13+
__attribute__((always_inline))
1214
static inline void
1315
reg_wr8(uint32_t addr, uint8_t value)
1416
{
1517
volatile uint8_t *ptr = (uint8_t *)addr;
1618
*ptr = value;
1719
}
1820

21+
__attribute__((always_inline))
1922
static inline void
2023
reg_wr16(uint32_t addr, uint16_t value)
2124
{
2225
volatile uint16_t *ptr = (uint16_t *)addr;
2326
*ptr = value;
2427
}
2528

29+
__attribute__((always_inline))
2630
static inline uint32_t
2731
reg_rd(uint32_t addr)
2832
{
2933
volatile uint32_t *ptr = (uint32_t *)addr;
3034
return *ptr;
3135
}
3236

37+
__attribute__((always_inline))
3338
static inline uint8_t
3439
reg_rd8(uint32_t addr)
3540
{
3641
volatile uint8_t *ptr = (uint8_t *)addr;
3742
return *ptr;
3843
}
3944

45+
__attribute__((always_inline))
4046
static inline void
4147
reg_set(uint32_t addr, uint32_t mask)
4248
{
4349
volatile uint32_t *ptr = (uint32_t *)addr;
4450
*ptr |= mask;
4551
}
4652

53+
__attribute__((always_inline))
4754
static inline void
4855
reg_set_bits(uint32_t addr, uint32_t shift, uint32_t length, uint32_t bits)
4956
{
@@ -54,24 +61,28 @@ reg_set_bits(uint32_t addr, uint32_t shift, uint32_t length, uint32_t bits)
5461
*ptr = (*ptr & ~mask) | ((bits << shift) & mask);
5562
}
5663

64+
__attribute__((always_inline))
5765
static inline void
5866
reg_set_bit(uint32_t addr, uint32_t bit)
5967
{
6068
reg_set_bits(addr, bit, 1, 1);
6169
}
6270

71+
__attribute__((always_inline))
6372
static inline void
6473
reg_clr_bit(uint32_t addr, uint32_t bit)
6574
{
6675
reg_set_bits(addr, bit, 1, 0);
6776
}
6877

78+
__attribute__((always_inline))
6979
static inline int
7080
reg_get_bit(uint32_t addr, int bit)
7181
{
7282
return (reg_rd(addr) >> bit) & 1;
7383
}
7484

85+
__attribute__((always_inline))
7586
static inline void
7687
reg_or(uint32_t addr, uint32_t bits)
7788
{

0 commit comments

Comments
 (0)