3.7.2 System reset sources Power-on reset initializes all registers while system reset reinitializes the system except for the debug, part of the RCC and power controller status registers, as well as the backup power domain. A system reset is generated in the following cases: • Power-on reset (pwr_por_rst) • Brownout reset • Low level on NRST pin (external reset) • Independent watchdog 1 (from D1 domain) • Independent watchdog 2 (from D2 domain) • Window watchdog 1 (from D1 domain) • Window watchdog 2 (from D2 domain) • Software reset • Low-power mode security reset • Exit from Standby
/** * @brief This is the code that gets called when the processor first * starts execution following a reset event. Only the absolutely * necessary set is performed, after which the application * supplied main() routine is called. * @param None * @retval : None */
/****************************************************************************** * * The minimal vector table for a Cortex M3. Note that the proper constructs * must be placed on this to ensure that it ends up at physical address * 0x0000.0000. * ******************************************************************************/ .section .isr_vector,"a",%progbits .type g_pfnVectors, %object .size g_pfnVectors, .-g_pfnVectors
/* Sections */ SECTIONS { /* The startup code into "FLASH" Rom type memory */ .isr_vector : { . = ALIGN(4); KEEP(*(.isr_vector)) /* Startup code */ . = ALIGN(4); } >FLASH
/* The program code and other data into "FLASH" Rom type memory */ .text : { . = ALIGN(4); *(.text) /* .text sections (code) */ *(.text*) /* .text* sections (code) */ *(.glue_7) /* glue arm to thumb code */ *(.glue_7t) /* glue thumb to arm code */ *(.eh_frame)
KEEP (*(.init)) KEEP (*(.fini))
. = ALIGN(4); _etext = .; /* define a global symbols at end of code */ } >FLASH
/* Constant data into "FLASH" Rom type memory */ .rodata : { . = ALIGN(4); *(.rodata) /* .rodata sections (constants, strings, etc.) */ *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ . = ALIGN(4); } >FLASH }
$ readelf -a test.elf ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: ARM Version: 0x1 Entry point address: 0x8009499 Start of program headers: 52 (bytes into file) Start of section headers: 1299152 (bytes into file) Flags: 0x5000200, Version5 EABI, soft-float ABI Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 4 Size of section headers: 40 (bytes) Number of section headers: 26 Section header string table index: 25
Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL 00000000 000000 000000 00 0 0 0 [ 1] .isr_vector PROGBITS 08000000 001000 0001e4 00 A 0 0 1 [ 2] .text PROGBITS 080001e8 0011e8 012144 00 AX 0 0 8 [ 3] .rodata PROGBITS 08012330 013330 002338 00 A 0 0 8 [ 4] .ARM.extab PROGBITS 08014668 01622c 000000 00 W 0 0 1 [ 5] .ARM ARM_EXIDX 08014668 015668 000008 00 AL 2 0 4 [ 6] .preinit_array PREINIT_ARRAY 08014670 01622c 000000 04 WA 0 0 1 [ 7] .init_array INIT_ARRAY 08014670 015670 000004 04 A 0 0 4 [ 8] .fini_array FINI_ARRAY 08014674 015674 000004 04 A 0 0 4 [ 9] .data PROGBITS 20000000 016000 00022c 00 WA 0 0 4 [10] .bss NOBITS 20000230 016230 001b44 00 WA 0 0 8 [11] ._user_heap_stack NOBITS 20001d74 016d74 000604 00 WA 0 0 1 [12] .ARM.attributes ARM_ATTRIBUTES 00000000 01622c 000029 00 0 0 1 [13] .debug_info PROGBITS 00000000 016255 01da16 00 0 0 1 [14] .debug_abbrev PROGBITS 00000000 033c6b 0056f5 00 0 0 1 [15] .debug_aranges PROGBITS 00000000 039360 001bf8 00 0 0 8 [16] .debug_rnglists PROGBITS 00000000 03af58 0015ba 00 0 0 1 [17] .debug_macro PROGBITS 00000000 03c512 0206fd 00 0 0 1 [18] .debug_line PROGBITS 00000000 05cc0f 022fc5 00 0 0 1 [19] .debug_str PROGBITS 00000000 07fbd4 0aae1c 01 MS 0 0 1 [20] .comment PROGBITS 00000000 12a9f0 000043 01 MS 0 0 1 [21] .debug_frame PROGBITS 00000000 12aa34 008440 00 0 0 4 [22] .debug_line_str PROGBITS 00000000 132e74 000064 01 MS 0 0 1 [23] .symtab SYMTAB 00000000 132ed8 0072e0 10 24 1208 4 [24] .strtab STRTAB 00000000 13a1b8 002ffa 00 0 0 1 [25] .shstrtab STRTAB 00000000 13d1b2 00011c 00 0 0 1 Key to Flags: W (write), A (alloc), X (execute), M (merge), S (strings), I (info), L (link order), O (extra OS processing required), G (group), T (TLS), C (compressed), x (unknown), o (OS specific), E (exclude), D (mbind), y (purecode), p (processor specific)
Unwind section '.ARM' at offset 0x15668 contains 1 entry:
0x8000228 <strlen>: 0x1 [cantunwind]
Symbol table '.symtab' contains 1838 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 08000000 0 SECTION LOCAL DEFAULT 1 .isr_vector 2: 080001e8 0 SECTION LOCAL DEFAULT 2 .text 3: 08012330 0 SECTION LOCAL DEFAULT 3 .rodata 4: 08014668 0 SECTION LOCAL DEFAULT 4 .ARM.extab 5: 08014668 0 SECTION LOCAL DEFAULT 5 .ARM 6: 08014670 0 SECTION LOCAL DEFAULT 6 .preinit_array 7: 08014670 0 SECTION LOCAL DEFAULT 7 .init_array 8: 08014674 0 SECTION LOCAL DEFAULT 8 .fini_array 9: 20000000 0 SECTION LOCAL DEFAULT 9 .data 10: 20000230 0 SECTION LOCAL DEFAULT 10 .bss 11: 20001d74 0 SECTION LOCAL DEFAULT 11 ._user_heap_stack (많아서 생략)
No version information found in this file. Attribute Section: aeabi File Attributes Tag_CPU_name: "7-M" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Microcontroller Tag_THUMB_ISA_use: Thumb-2 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align_needed: 8-byte Tag_ABI_enum_size: small Tag_CPU_unaligned_access: v6
For ELF targets, the .type directive is used like this:
.type name , type description This sets the type of symbol name to be either a function symbol or an object symbol. There are five different syntaxes supported for the type description field, in order to provide compatibility with various other assemblers.
Because some of the characters used in these syntaxes (such as ‘@’ and ‘#’) are comment characters for some architectures, some of the syntaxes below do not work on all architectures. The first variant will be accepted by the GNU assembler on all architectures so that variant should be used for maximum portability, if you do not need to assemble your code with other assemblers.
STT_FUNC function Mark the symbol as being a function name.
STT_GNU_IFUNC gnu_indirect_function Mark the symbol as an indirect function when evaluated during reloc processing. (This is only supported on assemblers targeting GNU systems).
STT_OBJECT object Mark the symbol as being a data object.
$ sudo modprobe eeprom modprobe: FATAL: Module eeprom not found in directory /lib/modules/6.8.0-90-generic
$ sudo modprobe at24 $ decode-dimms 명령어 'decode-dimms' 을(를) 찾을 수 없습니다. 그러나 다음을 통해 설치할 수 있습니다: sudo apt install i2c-tools
$ decode-dimms No EEPROM found, the kernel probably does not support your hardware.
$ sudo dmidecode -t dmidecode: option requires an argument -- 't' Type number or keyword expected Valid type keywords are: bios system baseboard chassis processor memory cache connector slot
$ sudo dmidecode -t memory # dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 3.2.0 present.
Handle 0x0013, DMI type 16, 23 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: None Maximum Capacity: 32 GB Error Information Handle: Not Provided Number Of Devices: 2
Handle 0x0014, DMI type 17, 84 bytes Memory Device Array Handle: 0x0013 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 8 GB Form Factor: Other Set: None Locator: ChannelA-DIMM0 Bank Locator: BANK 0 Type: DDR4 Type Detail: Synchronous Speed: 2667 MT/s Manufacturer: Samsung Serial Number: 00000000 Asset Tag: 9876543210 Part Number: M471A1G44AB0-CTD Rank: 1 Configured Memory Speed: 2667 MT/s Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Memory Technology: DRAM Memory Operating Mode Capability: Volatile memory Firmware Version: Not Specified Module Manufacturer ID: Bank 1, Hex 0xCE Module Product ID: Unknown Memory Subsystem Controller Manufacturer ID: Unknown Memory Subsystem Controller Product ID: Unknown Non-Volatile Size: None Volatile Size: 8 GB Cache Size: None Logical Size: None
Handle 0x0015, DMI type 17, 84 bytes Memory Device Array Handle: 0x0013 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 8 GB Form Factor: Other Set: None Locator: ChannelB-DIMM0 Bank Locator: BANK 2 Type: DDR4 Type Detail: Synchronous Speed: 2667 MT/s Manufacturer: Samsung Serial Number: 00000000 Asset Tag: 9876543210 Part Number: M471A1G44AB0-CTD Rank: 1 Configured Memory Speed: 2667 MT/s Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V Memory Technology: DRAM Memory Operating Mode Capability: Volatile memory Firmware Version: Not Specified Module Manufacturer ID: Bank 1, Hex 0xCE Module Product ID: Unknown Memory Subsystem Controller Manufacturer ID: Unknown Memory Subsystem Controller Product ID: Unknown Non-Volatile Size: None Volatile Size: 8 GB Cache Size: None Logical Size: None
그래서 reset 누르고 재기동 하면 ACM이 살아는 있지만 정상적으로 작동을 하지 않는건가?
If you reset the bluepill you need to pull down the D+ line for several milliseconds to let know the host that it has to start the enumeration process.
안녕하세요. 티스토리팀입니다. 항상 티스토리를 이용해 주셔서 감사합니다. 티스토리의 동영상 직접 업로드 기능은 전체 글 중 약 1% 수준으로 이용되고 있어, 사용 빈도는 매우 제한적인 편입니다. 반면 동영상 업로드 기능은 안정적인 저장과 전송을 위해 비교적 많은 운영 자원이 필요한 기능이기도 합니다. 티스토리는 글쓰기와 소통 등 더 많은 이용자분들이 활용하시는 기능을 보다 안정적으로 개선하기 위해, 블로그에 동영상 파일을 직접 업로드하는 기능을 점진적으로 정리할 예정입니다. 이에 따라동영상 신규 업로드가 중단되며, 기존에 업로드된 동영상은 일정 기간 이후 삭제됩니다. 앞으로는 티스토리에서 동영상 파일을 직접 업로드하는 방식 대신, 유튜브 등 외부 동영상 플랫폼을 활용하는 방식으로 운영이 변경됩니다. 아래에서 변경 내용과 이용 방법을 FAQ 형식으로 안내드립니다.
자주 묻는 질문
Q. 무엇이 달라지나요? A. 티스토리에서 동영상 파일을 직접 업로드하는 기능이 종료됩니다. 외부 플랫폼 영상은 그대로 이용하실 수 있습니다. Q. 유튜브 영상도 삭제되나요? A. 아닙니다. 유튜브 등 외부 플랫폼에서 링크하거나 임베드한 영상은 이번 조정 대상이 아니며, 기존과 동일하게 재생됩니다. Q. 기존에 올린 동영상은 어떻게 되나요? A. 바로 삭제되지 않으며, 2026년 3월 23일에 일괄 삭제될 예정입니다. 삭제 전까지 백업이 가능합니다. Q. 동영상 신규 업로드는 언제부터 중단되나요? A. 2026년 2월 23일부터 웹 에디터에서 동영상 파일을 새로 업로드할 수 없습니다. Q. 꼭 기억해야 할 점이 있나요? A. 기존에 업로드한 동영상은 삭제 예정일 이전까지 반드시 백업해 주시기 바랍니다. Q. 동영상은 어떻게 백업하나요? A. 관리 메뉴에서 블로그 → 데이터 관리하기 → 동영상 다운로드 → 다운로드 순서로 이동하시면, 기존에 업로드한 동영상을 확인하고 내려받을 수 있습니다. Q. 앞으로는 어떻게 영상을 넣으면 되나요? A. 유튜브 등 외부 플랫폼에 영상 업로드 후, 영상 주소(URL) 복사하여 넣으면 됩니다. 외부 플랫폼의 재생 기능과 옵션을 그대로 활용하실 수 있습니다. Q. 왜 이런 조정을 하나요? A. 동영상 직접 업로드 이용 비중 전체글의 1%로 사용량이 낮은 반면, 안정적인 저장과 전송에 많은 자원이 필요합니다. 이를 통해 글쓰기와 소통 등 더 많은 이용자분들이 사용하는 기능을 안정적으로 개선하고자 합니다.
#if defined CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_IL3820 /* Actual size in pixel, not bytes and use single buffer */ size_in_px *= 8; lv_disp_buf_init(&disp_buf, buf1, NULL, size_in_px); #elif defined CONFIG_LVGL_TFT_DISPLAY_MONOCHROME lv_disp_buf_init(&disp_buf, buf1, NULL, size_in_px); #else lv_disp_buf_init(&disp_buf, buf1, buf2, size_in_px); #endif
윈도우에서는 WSLv2가 필요 하다는데, 의외로 데비안 계열에도 이미 포함되어 있는걸 보면 유명한듯?
Windows On Windows, each Podman machine is backed by a virtualized Windows Subsystem for Linux (WSLv2) distribution. Once installed, the podman command can be run directly from your Windows PowerShell (or CMD) prompt, where it remotely communicates with the podman service running in the WSL environment. Alternatively, you can access Podman directly from the WSL instance if you prefer a Linux prompt and Linux tooling.
See the Podman for Windows guide for setup and usage instructions.
Debian The podman package is available in the Debian 11 (Bullseye) repositories and later.
Portrait 되니 좌우가 바뀌어서 이를 위해 MX(Column Address Order) 뒤집음
MAC - 0xA8 (portait invert + bgr)- 1010 1000 (2)
landscape 처럼 방향 뒤집으려면 MX/MY를 뒤집음
아래는 부팅 로그(참조용)
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:6992 load:0x40078000,len:14292 ho 0 tail 12 room 4 load:0x40080400,len:3688 entry 0x40080678 I (29) boot: ESP-IDF v4.3 2nd stage bootloader I (29) boot: compile time 14:34:09 I (29) boot: chip revision: 3 I (32) boot_comm: chip revision: 3, min. bootloader chip revision: 0 I (39) boot.esp32: SPI Speed : 40MHz I (43) boot.esp32: SPI Mode : DIO I (48) boot.esp32: SPI Flash Size : 2MB I (53) boot: Enabling RNG early entropy source... I (58) boot: Partition Table: I (62) boot: ## Label Usage Type ST Offset Length I (69) boot: 0 nvs WiFi data 01 02 00009000 00006000 I (76) boot: 1 phy_init RF data 01 01 0000f000 00001000 I (84) boot: 2 factory factory app 00 00 00010000 00100000 I (91) boot: End of partition table I (95) boot_comm: chip revision: 3, min. application chip revision: 0 I (103) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=0e41ch ( 58396) map I (133) esp_image: segment 1: paddr=0001e444 vaddr=3ffb0000 size=01bd4h ( 7124) load I (136) esp_image: segment 2: paddr=00020020 vaddr=400d0020 size=47344h (291652) map I (249) esp_image: segment 3: paddr=0006736c vaddr=3ffb1bd4 size=00ec8h ( 3784) load I (251) esp_image: segment 4: paddr=0006823c vaddr=40080000 size=0c740h ( 51008) load I (277) esp_image: segment 5: paddr=00074984 vaddr=50000000 size=00010h ( 16) load I (284) boot: Loaded app from partition at offset 0x10000 I (284) boot: Disabling RNG early entropy source... I (297) cpu_start: Pro cpu up. I (297) cpu_start: Starting app cpu, entry point is 0x40081160 I (0) cpu_start: App cpu up. I (313) cpu_start: Pro cpu start user code I (313) cpu_start: cpu freq: 160000000 I (313) cpu_start: Application information: I (318) cpu_start: Project name: lvgl-demo I (323) cpu_start: App version: 1 I (327) cpu_start: ELF file SHA256: af171cc858421945... I (333) cpu_start: ESP-IDF: v4.3 I (338) heap_init: Initializing. RAM available for dynamic allocation: I (345) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM I (351) heap_init: At 3FFCFB50 len 000104B0 (65 KiB): DRAM I (357) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM I (364) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM I (370) heap_init: At 4008C740 len 000138C0 (78 KiB): IRAM I (377) spi_flash: detected chip: generic I (381) spi_flash: flash io: dio W (385) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header. I (399) cpu_start: Starting scheduler on PRO CPU. I (0) cpu_start: Starting scheduler on APP CPU.
# # LVGL TFT Display controller # CONFIG_LVGL_PREDEFINED_DISPLAY_NONE=y # CONFIG_LVGL_PREDEFINED_DISPLAY_WROVER4 is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_M5STACK is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_M5STICK is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_M5STICKC is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_ERTFT0356 is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_ADA_FEATHERWING is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_RPI_MPI3501 is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_WEMOS_LOLIN is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_ATAG is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_RPI_RA8875 is not set # CONFIG_LVGL_PREDEFINED_DISPLAY_TTGO is not set CONFIG_LVGL_TFT_DISPLAY_CONTROLLER_ILI9341=y CONFIG_LVGL_TFT_DISPLAY_PROTOCOL_SPI=y CONFIG_LVGL_PREDEFINED_PINS_NONE=y # CONFIG_LVGL_PREDEFINED_PINS_38V4 is not set # CONFIG_LVGL_PREDEFINED_PINS_30 is not set # CONFIG_LVGL_PREDEFINED_PINS_38V1 is not set # CONFIG_LVGL_PREDEFINED_PINS_TKOALA is not set CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ILI9341=y # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ILI9481 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ILI9486 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ILI9488 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ST7789 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_ST7735S is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_HX8357 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_SH1107 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_SSD1306 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_FT81X is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_IL3820 is not set # CONFIG_LVGL_TFT_DISPLAY_USER_CONTROLLER_RA8875 is not set CONFIG_LVGL_TFT_DISPLAY_SPI_HSPI=y # CONFIG_LVGL_TFT_DISPLAY_SPI_VSPI is not set CONFIG_LVGL_DISPLAY_ORIENTATION_PORTRAIT=y # CONFIG_LVGL_DISPLAY_ORIENTATION_PORTRAIT_INVERTED is not set # CONFIG_LVGL_DISPLAY_ORIENTATION_LANDSCAPE is not set # CONFIG_LVGL_DISPLAY_ORIENTATION_LANDSCAPE_INVERTED is not set CONFIG_LVGL_DISPLAY_ORIENTATION=0 CONFIG_LVGL_DISPLAY_WIDTH=320 CONFIG_LVGL_DISPLAY_HEIGHT=240 CONFIG_LVGL_TFT_USE_CUSTOM_SPI_CLK_DIVIDER=y # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_1 is not set CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_2=y # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_3 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_4 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_5 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_6 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_7 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_8 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_9 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_10 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_12 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_16 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_20 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_24 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_32 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_40 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_48 is not set # CONFIG_LVGL_TFT_SPI_CLK_DIVIDER_80 is not set CONFIG_LVGL_TFT_CUSTOM_SPI_CLK_DIVIDER=2 # CONFIG_LVGL_INVERT_DISPLAY is not set # CONFIG_LVGL_INVERT_COLORS is not set CONFIG_LVGL_AXP192_PIN_SDA=21 CONFIG_LVGL_AXP192_PIN_SCL=22