usb_emit
, usb_key
ble_emit
, ble_key
minimal.bin
) to the USB mass storage NODE_WB55RG
/dev/ttyACM0
)
and set the speed to 115200 baud.
I set the putty terminal configuration to
Mecrisp-Stellaris 2.5.2 for STM32WB55 by Matthias Koch 23 5 / .[CR] 4 ok. : hello ." World" ;[CR] ok. hello[CR] World ok.
psi@homer:~> git clone https://github.com/spyren/Mecrisp-Cube Klone nach 'Mecrisp-Cube' ... remote: Enumerating objects: 106, done. remote: Counting objects: 100% (106/106), done. remote: Compressing objects: 100% (71/71), done. remote: Total 106 (delta 33), reused 106 (delta 33), pack-reused 0 Empfange Objekte: 100% (106/106), 938.96 KiB | 2.39 MiB/s, Fertig. Löse Unterschiede auf: 100% (33/33), Fertig.Import the project into the IDE:
File -> Import -> General -> Existing Projects into Workspace -> Select root directory Copy project into workspace Browse to Mecrisp-Cube directoryGenerate code from the STM32CubeMX
minimal.ioc
file:
Project -> Generate CodeSelect the Build Configuration (Debug if you want to debug the project) and Build the project:
Project -> Build Configurations -> Set Active -> Debug/Reelease Project -> Build Project
$ telnet localhost 4444 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Open On-Chip Debugger > reset init Unable to match requested speed 500 kHz, using 480 kHz Unable to match requested speed 500 kHz, using 480 kHz target halted due to debug-request, current mode: Thread xPSR: 0x01000000 pc: 0x08003aae msp: 0x20000430 > flash erase_sector 0 0 192 erased sectors 0 through 192 on flash bank 0 in 4.583453s > flash write_image mecrisp-stellaris-stm32wb55.hex device idcode = 0x20016495 (STM32WB5x - Rev: 2.1) flash size = 1024kbytes flash mode : single-bank Padding 4 bytes to keep 8-byte write size block write succeeded wrote 15404 bytes from file mecrisp-stellaris-stm32wb55.hex in 0.329747s (45.620 KiB/s) > shutdown shutdown command invoked Connection closed by foreign host.
$ alias cubepgmcli='/opt/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI' $ cubepgmcli -c port=USB1 -ob displBTW you can flash the Nucleo Board in the same way.
Projects/STM32WB_Copro_Wireless_Binaries
.
Using USB_USER and the built-in bootloader (activate with jumper between CN7.5 and CN7.7)
$ alias cubepgmcli='/opt/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI' STM32Cube_FW_WB_V1.4.0/Projects/STM32WB_Copro_Wireless_Binaries> cubepgmcli -c port=USB1 -fwdelete STM32Cube_FW_WB_V1.4.0/Projects/STM32WB_Copro_Wireless_Binaries> cubepgmcli -c port=USB1 -fwupgrade stm32wb5x_FUS_fw.bin 0x080EC000 firstinstall=0 STM32Cube_FW_WB_V1.4.0/Projects/STM32WB_Copro_Wireless_Binaries> cubepgmcli -c port=USB1 -fwupgrade stm32wb5x_BLE_Stack_fw.bin 0x080CB000 firstinstall=1Using ST-LINK (here to show the option bytes,
SBRV : 0x32C00
means start address 4 * SBRV + 0x08000000 = 0x080CB000, 3D000 means there is no stack):
psi@homer:~/Dropbox/wbForth/CubeWB> cubepgmcli -c port=SWD -ob displ ------------------------------------------------------------------- STM32CubeProgrammer v2.3.0 ------------------------------------------------------------------- ST-LINK SN : 066BFF313335415043141250 ST-LINK FW : V2J35M26 Voltage : 3,21V SWD freq : 4000 KHz Connect mode: Normal Reset mode : Software reset Device ID : 0x495 Device name : STM32WBxx Flash size : 1 MBytes Device type : MCU Device CPU : Cortex-M0+/M4 UPLOADING OPTION BYTES DATA ... Bank : 0x00 Address : 0x58004020 Size : 104 Bytes [==================================================] 100% OPTION BYTES BANK: 0 Read Out Protection: RDP : 0xAA (Level 0, no protection) BOR Level: BOR_LEV : 0x0 (BOR Level 0 reset level threshold is around 1.7 V) User Configuration: nBOOT0 : 0x1 (nBOOT0=1 Boot from main Flash) nBOOT1 : 0x1 (Boot from code area if BOOT0=0 otherwise system Flash) nSWBOOT0 : 0x1 (BOOT0 taken from PH3/BOOT0 pin) SRAM2RST : 0x0 (SRAM2 erased when a system reset occurs) SRAM2PE : 0x1 (SRAM2 parity check disable) nRST_STOP : 0x1 (No reset generated when entering the Stop mode) nRST_STDBY : 0x1 (No reset generated when entering the Standby mode) nRSTSHDW : 0x1 (No reset generated when entering the Shutdown mode) WWDGSW : 0x1 (Software window watchdog) IWGDSTDBY : 0x1 (Independent watchdog counter running in Standby mode) IWDGSTOP : 0x1 (Independent watchdog counter running in Stop mode) IWDGSW : 0x1 (Software independent watchdog) IPCCDBA : 0x0 (0x0) Security Configuration Option bytes: ESE : 0x1 (Security enabled) SFSA : 0xCB (0xCB) FSD : 0x0 (System and Flash secure) DDS : 0x1 (CPU2 debug access disabled) C2OPT : 0x1 (SBRV will address Flash) NBRSD : 0x0 (SRAM2b is secure) SNBRSA : 0xF (0xF) BRSD : 0x0 (SRAM2a is secure) SBRSA : 0xA (0xA) SBRV : 0x32C00 (0x32C00) PCROP Protection: PCROP1A_STRT : 0x1FF (0x8000FF8) PCROP1A_END : 0x0 (0x8000008) PCROP_RDP : 0x1 (PCROP zone is erased when RDP is decreased) PCROP1B_STRT : 0x1FF (0x8000FF8) PCROP1B_END : 0x0 (0x8000008) Write Protection: WRP1A_STRT : 0xFF (0x807F800) WRP1A_END : 0x0 (0x8000000) WRP1B_STRT : 0xFF (0x807F800) WRP1B_END : 0x0 (0x8000000)