1.1 GDB server start-up options --ext-memory-loaders Provides the list of the available external memory loaders.
-el <file_path>, --extload <file_path> Selects a custom external memory-loader.
--external-init Runs Init() from external memory loader after reset to make external memory accessible without need for application software to set up the access to memory-mapped external memory. [This option requires that option -el <file_path>, --extload <file_path> is used also.]
2.3.1 Loading program to external memory When a program must be loaded to an external memory, the option --extload <file_path> must be used. External memory loader files are delivered for most available STM32 Evaluation and Discovery boards containing external memory. To list the available loader files, use the --ext-memory-loaders option. The STM32CubeProgrammer software description user manual (UM2237) contains detailed information on how to use external Flash loader programs and develop customized loaders for external memory. The user manual is available from the STM32CubeProg webpage on www.st.com.
2.3.2 Memory read/write to external memory To make external memory accessible for read and write by the debugger, use the --external-init option together with external memory loader --extload <file_path> option. When --external-init is used the Init() function in the external memory loader is run by the ST-LINK GDB server after reset. This makes external memory accessible without any need for application software to set up the device for external memory access. The external memory must be memory mapped and directly accessed because normal memory read/ write is used by gdb. Note: When using the --external-init option with the ST-LINK GDB server, the stack required by the Init() function is limited to 1024 bytes of stack instead of 400 bytes in ST-LINK GDB server v5.4.0.
STM32F746NGH6 in TFBGA216 package ARM®32-bit Cortex®-M7 + FPU + Chrom-ART Accelerator 216 MHz max CPU frequency VDD from 1.7 V to 3.6 V 1024 KB Flash 320 KB SRAM GPIOs (168) with external interrupt capability 12-bit ADCs with 24 channels (3) 12-bit DAC channels (2) USART/UART (8) I2C (4) SPI (6) Advanced-control Timer (2) Low-power Timer (1) General Purpose Timers (12) Watchdog Timers (2) CAN 2.0B active (2) SAI (2) USB 2.0 OTG HS USB 2.0 OTG FS Ethernet SDMMC Camera interface Random Generator (TRNG for HW entropy) LCD-TFT
while True:
# Check each pin
for key_pin in key_pin_array:
if not key_pin.value: # Is it grounded?
i = key_pin_array.index(key_pin)
print("Pin #{} is grounded.".format(i))
# Turn on the red LED
led.value = True
while not key_pin.value:
pass # Wait for it to be ungrounded!
# "Type" the Keycode or string
key = keys_pressed[i] # Get the corresponding Keycode or string
if isinstance(key, str): # If it's a string...
keyboard_layout.write(key) # ...Print the string
else: # If it's not a string...
keyboard.press(control_key, key) # "Press"...
keyboard.release_all() # ..."Release"!
# Turn off the red LED
led.value = False
time.sleep(0.01)
아무튼.. 원래 의도는 3V 전원에서 330옴 통해서 전류 제한해서 gpio로 3.3V가 들어가게 하는거였는데