# This is an STM32 eval board with a single STM32F103ZET6 chip. # http://www.st.com/internet/evalboard/product/204176.jsp # increase working area to 32KB for faster flash programming set WORKAREASIZE 0x8000 source [find target/stm32f1x.cfg] # # configure FSMC Bank 1 (NOR/PSRAM Bank 2) NOR flash # M29W128GL70ZA6E # set _FLASHNAME $_CHIPNAME.norflash flash bank $_FLASHNAME cfi 0x64000000 0x01000000 2 2 $_TARGETNAME proc stm32_enable_fsmc {} { echo "Enabling FSMC Bank 1 (NOR/PSRAM Bank 2)" # enable gpio (defg) clocks for fsmc # RCC_APB2ENR mww 0x40021018 0x000001E0 # enable fsmc clock # RCC_AHBENR mww 0x40021014 0x00000114 # configure gpio to alternate function # GPIOD_CRL mww 0x40011400 0x44BB44BB # GPIOD_CRH mww 0x40011404 0xBBBBBBBB # GPIOE_CRL mww 0x40011800 0xBBBBB444 # GPIOE_CRH mww 0x40011804 0xBBBBBBBB # GPIOF_CRL mww 0x40011C00 0x44BBBBBB # GPIOF_CRH mww 0x40011C04 0xBBBB4444 # GPIOG_CRL mww 0x40012000 0x44BBBBBB # GPIOG_CRH mww 0x40012004 0x444444B4 # setup fsmc timings # FSMC_BCR1 mww 0xA0000008 0x00001058 # FSMC_BTR1 mww 0xA000000C 0x10000502 # FSMC_BCR1 - enable fsmc mww 0xA0000008 0x00001059 } $_TARGETNAME configure -event reset-init { stm32_enable_fsmc }