@@ -191,6 +191,52 @@ typedef struct {
191191} SCB_TypeDef ;
192192
193193
194+ /** Power interface register map. */
195+ typedef struct pwr_reg_map {
196+ vu32 CR ; /**< Control register */
197+ vu32 CSR ; /**< Control and status register */
198+ } pwr_reg_map ;
199+
200+ /** Power peripheral register map base pointer. */
201+ #define pPWR ((struct pwr_reg_map*)0x40007000)
202+
203+ /** Disable backup domain write protection bit */
204+ #define PWR_CR_DBP (1 << 8)
205+
206+
207+ /** Backup peripheral register map type. */
208+ typedef struct bkp_reg_map {
209+ const u32 RESERVED1 ; ///< Reserved
210+ vu16 DR1 ; ///< Data register 1
211+ const u16 RESERVED2 ;
212+ vu16 DR2 ; ///< Data register 2
213+ const u16 RESERVED3 ;
214+ vu16 DR3 ; ///< Data register 3
215+ const u16 RESERVED4 ;
216+ vu16 DR4 ; ///< Data register 4
217+ const u16 RESERVED5 ;
218+ vu16 DR5 ; ///< Data register 5
219+ const u16 RESERVED6 ;
220+ vu16 DR6 ; ///< Data register 6
221+ const u16 RESERVED7 ;
222+ vu16 DR7 ; ///< Data register 7
223+ const u16 RESERVED8 ;
224+ vu16 DR8 ; ///< Data register 8
225+ const u16 RESERVED9 ;
226+ vu16 DR9 ; ///< Data register 9
227+ const u16 RESERVED10 ;
228+ vu16 DR10 ; ///< Data register 10
229+ const u16 RESERVED11 ;
230+ vu32 RTCCR ; ///< RTC control register
231+ vu32 CR ; ///< Control register
232+ vu32 CSR ; ///< Control and status register
233+ } bkp_reg_map ;
234+
235+ /** Backup peripheral register map base pointer. */
236+ #define pBKP ((struct bkp_reg_map*)0x40006C00)
237+
238+ void bkp10Write (u16 value );
239+
194240//void setPin(u32 bank, u8 pin);
195241//void resetPin(u32 bank, u8 pin);
196242void gpio_write_bit (u32 bank , u8 pin , u8 val );
@@ -206,6 +252,7 @@ void setupLEDAndButton(void);
206252void setupFLASH (void );
207253bool checkUserCode (u32 usrAddr );
208254void jumpToUser (u32 usrAddr );
255+ int checkAndClearBootloaderFlag ();
209256
210257bool flashWriteWord (u32 addr , u32 word );
211258bool flashErasePage (u32 addr );
0 commit comments