当前位置: 首页 > news >正文

rt-thread使用sfud挂载spi flash, 并使用spi驱动st7789 lcd的trace分析(使用spi dma)

rt-thread使用sfud挂载spi flash, 并使用spi驱动st7789 lcd的trace分析(使用spi dma)

1. spi注册

  • 可见, 这部分的工作主要是配置并开启了dma, 初始化了完成量, 以及注册rt_spi_bus_register
  • 真正有价值的是rt_spi_bus_register
  • dma初始化可以不用放这里, 可以放到跟spi接口一起初始化
drv_spi.c         :1178| rt_hw_spi_init                        
drv_spi.c         :1179| rt_hw_spi_init                                                  go=> stm32_get_dma_info
drv_spi.c         :1022| stm32_get_dma_info/*底层*/                    
drv_spi.c         :1181| rt_hw_spi_init                                                  go=> rt_hw_spi_bus_init
drv_spi.c         :592 | rt_hw_spi_bus_init/*配置并开启spi dma*/                    
drv_spi.c         :690 | rt_hw_spi_bus_init                                              go=> rt_completion_init /*用于中断*/
drv_spi.c         :693 | rt_hw_spi_bus_init                                              go=> rt_spi_bus_register
dev_spi_core.c    :34  | rt_spi_bus_register                   
dev_spi_core.c    :37  | rt_spi_bus_register                                             go=> rt_spi_bus_device_init
dev_spi.c         :73  | rt_spi_bus_device_init                
dev_spi.c         :94  | rt_spi_bus_device_init                                          go=> rt_device_register
device.c          :149 | rt_device_find                        
device.c          :150 | rt_device_find                                                  spi1
dev_spi_core.c    :43  | rt_spi_bus_register                                             go=> rt_mutex_init

2. spi初始化

  • 应用程序通过调用rt_hw_spi_device_attach函数来注册spi设备, 以及初始化cs引脚
  • 应用程序通过调用rt_spi_configure, 最终调用了spi_configure来初始化spi。其中spi_configure是需要用户实现的函数之一。
  • spi,dma,nvic都可以在这里初始化
/*应用程序调用rt_hw_spi_device_attach, 主要是注册设备, 并初始化了cs引脚*/
drv_spi.c         :708 | rt_hw_spi_device_attach               
drv_spi.c         :716 | rt_hw_spi_device_attach                                         go=> rt_malloc
drv_spi.c         :720 | rt_hw_spi_device_attach                                         go=> rt_spi_bus_attach_device_cspin
dev_spi_core.c    :90  | rt_spi_bus_attach_device_cspin        
dev_spi_core.c    :95  | rt_spi_bus_attach_device_cspin                                  go=> rt_device_find
device.c          :149 | rt_device_find                        
device.c          :150 | rt_device_find                                                  spi1
dev_spi_core.c    :105 | rt_spi_bus_attach_device_cspin                                  go=> rt_spidev_device_init
dev_spi.c         :165 | rt_spidev_device_init                 
dev_spi.c         :185 | rt_spidev_device_init                                           go=> rt_device_register
device.c          :149 | rt_device_find                        
device.c          :150 | rt_device_find                                                  spi10
dev_spi_core.c    :112 | rt_spi_bus_attach_device_cspin                                  go=> rt_pin_mode /*初始化cs引脚*/
dev_spi_core.c    :116 | rt_spi_bus_attach_device_cspin                                  go=> rt_memset/*应用程序调用rt_spi_configure, 最终调用了spi_configure, 这个是底层需要实现的函数。stm32是在这个函数中执行了spi初始化*/
/*先配置后初始化, 也合理.*/
device.c          :149 | rt_device_find                        
device.c          :150 | rt_device_find                                                  spi10
dev_spi_core.c    :180 | rt_spi_configure                      
dev_spi_core.c    :197 | rt_spi_configure                                                go=> rt_pin_write high
dev_spi_core.c    :221 | rt_spi_configure                                                go=> rt_spi_bus_configure
dev_spi_core.c    :139 | rt_spi_bus_configure                  
dev_spi_core.c    :150 | rt_spi_bus_configure                                            go=> device->bus->ops->configure
drv_spi.c         :572 | spi_configure/*需要底层实现的函数1*/                         
drv_spi.c         :580 | spi_configure                                                   go=> stm32_spi_init
drv_spi.c         :86  | stm32_spi_init/*最终调用了stm32_spi_init, 这个是用户提供的*/                        
drv_spi.c         :240 | stm32_spi_init                                                  go=> HAL_SPI_Init
drv_spi.c         :254 | stm32_spi_init                                                  go=> HAL_DMA_Init
drv_spi.c         :260 | stm32_spi_init                                                  go=> HAL_NVIC_SetPriority
drv_spi.c         :261 | stm32_spi_init                                                  go=> HAL_NVIC_EnableIRQ
drv_spi.c         :268 | stm32_spi_init                                                  go=> HAL_DMA_Init
drv_spi.c         :274 | stm32_spi_init                                                  go=> HAL_NVIC_SetPriority
drv_spi.c         :275 | stm32_spi_init                                                  go=> HAL_NVIC_EnableIRQ
drv_spi.c         :282 | stm32_spi_init                                                  go=> HAL_NVIC_SetPriority
drv_spi.c         :283 | stm32_spi_init                                                  go=> HAL_NVIC_EnableIRQ

3. 发1个收3个

  • 因为收和发数量<10个, 因此收和发都用polling
  • 底层需要实现的函数是spixfer
/*发1个收3个*/
/*底层需要实现spixfer*/
dev_spi_core.c    :312 | rt_spi_send_then_recv                 
dev_spi_core.c    :313 | rt_spi_send_then_recv                             1(0x00000001) <= send_length
dev_spi_core.c    :314 | rt_spi_send_then_recv                             3(0x00000003) <= recv_length
dev_spi_core.c    :350 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer/*需要底层实现的函数2*/                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :464 | spixfer                                                         go=> HAL_SPI_Transmit /*长度<10用polling*/
drv_spi.c         :525 | spixfer                                                         go=> HAL_SPI_GetState
dev_spi_core.c    :366 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :335 | spixfer                                           3(0x00000003) <= message_length
drv_spi.c         :350 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :486 | spixfer                                                         go=> HAL_SPI_Receive /*长度<10用polling*/
drv_spi.c         :525 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :557 | spixfer                                                         go=> rt_pin_write high

4. 发5个收36个

  • 发<10个,用polling
  • 收>10个,用dma。使用dma有点麻烦,需要先判断输入buffer是否对齐,如果不对齐还要申请对齐的buffer_align,进行memcpy复制,然后用dma发送。
  • dma发送之后,开启rt_completion_wait等待。
  • 触发中断后, 并在SPI回调函数中发送完成量。
  • spixfer唤醒后,再将接收到的数据复制到输入buffer中。并释放buffer_align。
  • 期间还要做必要的cache操作。
  • 个人建议:直接将dma的buffer放到NonCache region,就像cherryusbusb一样。如果输入buffer不对齐,就进行memcpy。
/*发5个收36个*/
dev_spi_core.c    :312 | rt_spi_send_then_recv                 
dev_spi_core.c    :313 | rt_spi_send_then_recv                             5(0x00000005) <= send_length
dev_spi_core.c    :314 | rt_spi_send_then_recv                            36(0x00000024) <= recv_length
dev_spi_core.c    :350 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           5(0x00000005) <= message_length
drv_spi.c         :350 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :464 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :525 | spixfer                                                         go=> HAL_SPI_GetState
dev_spi_core.c    :366 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :335 | spixfer                                          36(0x00000024) <= message_length /*数量>10, 用dma传输*/
drv_spi.c         :350 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :374 | spixfer                                                         go=> rt_malloc_align
drv_spi.c         :376 | spixfer                                                         go=> rt_memcpy
drv_spi.c         :380 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :479 | spixfer                                                         go=> HAL_SPI_Receive_DMA
drv_spi.c         :514 | spixfer                                                         go=> rt_completion_wait/*等待完成*//*触发中断, 并在SPI回调函数中发送完成量*/
drv_spi.c         :756 | DMA2_Stream0_IRQHandler               
drv_spi.c         :760 | DMA2_Stream0_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :737 | SPI1_IRQHandler                       
drv_spi.c         :740 | SPI1_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1108| HAL_SPI_RxCpltCallback                
drv_spi.c         :1110| HAL_SPI_RxCpltCallback                                          go=> rt_completion_donedrv_spi.c         :521 | spixfer                                                         wake from rt_completion_wait.../*唤醒*/
drv_spi.c         :534 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :540 | spixfer                                                         go=> rt_free_align
drv_spi.c         :557 | spixfer                                                         go=> rt_pin_write high

5. 发115200个(spi lcd推送一帧的图像数据, 240x320x2=115200 bytes)

  • 因为发送>10个,所以使用dma发送
  • 因为dma长度限制,最大一次只能发65535 bytes。因此第一次发送65535 bytes。
  • 第一次是对齐的内存,不用腾挪,直接发送
  • 第二次发送49665 bytes,因为地址不对齐,所以需要申请对齐的buffer_align,并进行复制腾挪,才能发送
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                              115200(0x0001c200) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                      115200(0x0001c200) <= message_length/*长度>10, 发送需要使用dma*/
drv_spi.c         :350 | spixfer                                       65535(0x0000ffff) <= send_length/*先发送65535个*/
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops/*清理cache*/
drv_spi.c         :460 | spixfer                                                         go=> HAL_SPI_Transmit_DMA
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait/*等待完成*//*触发了中断*/
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
/*在dma_stream中断中开启spi中断, 并触发spi中断*/
drv_spi.c         :792 | SPI2_IRQHandler                       
drv_spi.c         :796 | SPI2_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1107| HAL_SPI_TxCpltCallback                
drv_spi.c         :1109| HAL_SPI_TxCpltCallback                                          go=> rt_completion_done/*spi回调函数中发送完成量*/drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait.../*spixfer唤醒*/
drv_spi.c         :335 | spixfer                                       49665(0x0000c201) <= message_length/*还剩49665个*/
drv_spi.c         :350 | spixfer                                       49665(0x0000c201) <= send_length/*再次发送49665个*/
drv_spi.c         :351 | spixfer                                       65535(0x0000ffff) <= already_send_length
drv_spi.c         :375 | spixfer                                                         go=> rt_malloc_align/*这次发送内存不对齐, 需要申请对齐的内存buffer_align*/
drv_spi.c         :377 | spixfer                                                         go=> rt_memcpy/*然后复制*/
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops/*清理cache*/
drv_spi.c         :460 | spixfer                                                         go=> HAL_SPI_Transmit_DMA/*然后发送*/
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait/*等待完成*//*触发了中断*/
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
/*在dma_stream中断中开启spi中断, 并触发spi中断*/
drv_spi.c         :792 | SPI2_IRQHandler                       
drv_spi.c         :796 | SPI2_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1107| HAL_SPI_TxCpltCallback                
drv_spi.c         :1109| HAL_SPI_TxCpltCallback                                          go=> rt_completion_done/*spi回调函数中发送完成量*/drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait.../*spixfer唤醒*/
drv_spi.c         :541 | spixfer                                                         go=> rt_free_align/*然后释放buffer_align*/
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write

6. 总结

  • 应用层需要调用rt_hw_spi_device_attach, rt_spi_configure函数来注册spi总线和初始化spi设备
  • 注意! rt_spi_configure函数实现spi设备初始化。
  • 底层需要实现spi_configure和spixfer这2个函数。如果是自己的板子移植,可以不用rt-thread的设备结构体, 直接在这2个函数中初始化外设, 并基于hal库函数实现收发即可.
  • 如果是polling, 非常简单, 直接使用HAL_SPI_Transmit/HAL_SPI_Receive收发即可,用HAL_SPI_GetState读取标志轮询
  • 如果是dma,使用HAL_SPI_Transmit_DMA/HAL_SPI_Transmit_DMA来收发,使用rt_completion_wait/rt_completion_done与中断回调函数实现握手。
  • 如果是dma,建议使用non-cache region的内存。在执行dma之前,建议先把buffer复制到non-chache region buffer,然后执行dma发送。

7. 附录: trace.log

[0m[D/drv.sdram] sdram init success, mapped at 0xC0000000, size is 33554432 bytes, data width is 16[0m\ | /
- RT -     Thread Operating System/ | \     5.2.0 build Aug 21 2025 22:50:362006 - 2024 Copyright by RT-Thread team
ramdisk0 device found
[32m[I/SDIO] SD card capacity 7874560 KB.[0m
[32m[I/SDIO] sd: switch to High Speed / SDR25 mode 
[0m
found part[0], begin: 16384, size: 7.521GB
try times 4
[32m[I/app.port_sdcard] mount to '/sdcard' success!
[0m
@spi_configure
[32m[I/SFUD] Found a Winbond flash chip. Size is 8388608 bytes.[0m
[32m[I/SFUD] W25Q64S flash device initialized successfully.[0m
[32m[I/SFUD] Probe SPI flash W25Q64S by SPI device spi10 success.[0m
[0m[D/FAL] Flash device |                  W25Q64S | addr: 0x00000000 | len: 0x00800000 | blk_size: 0x00001000 |initialized finish.[0m
[32m[I/FAL] ==================== FAL partition table ====================[0m
[32m[I/FAL] | name       | flash_dev |   offset   |    length  |[0m
[32m[I/FAL] -------------------------------------------------------------[0m
[32m[I/FAL] | wifi_image | W25Q64S   | 0x00000000 | 0x00100000 |[0m
[32m[I/FAL] | download   | W25Q64S   | 0x00100000 | 0x00100000 |[0m
[32m[I/FAL] | flashdb    | W25Q64S   | 0x00200000 | 0x00600000 |[0m
[32m[I/FAL] =============================================================[0m
[32m[I/FAL] RT-Thread Flash Abstraction Layer initialize success.[0m
[32m[I/FAL] The FAL block device (flashdb) created successfully[0m
[32m[I/SFUD] mount to '/spi' success![0m
msh />lcd_clear_test
@spi_configure
msh />
msh />device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  pin
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  uart4
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  uart4
device.c          :265 | rt_device_open                        
device.c          :266 | rt_device_open                                                  uart4
device.c          :267 | rt_device_open                                    3(0x00000003) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :268 | rt_device_open                                    0(0x00000000) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :281 | rt_device_open                                                  go=> device_init
device.c          :308 | rt_device_open                                                  go=> device_open
device.c          :329 | rt_device_open                                   19(0x00000013) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :330 | rt_device_open                                24648(0x00006048) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :331 | rt_device_open                                    1(0x00000001) <= dev->ref_count
drv_spi.c         :1185| rt_hw_spi_init                        
drv_spi.c         :1186| rt_hw_spi_init                                                  go=> stm32_get_dma_info
drv_spi.c         :1029| stm32_get_dma_info                    
drv_spi.c         :1188| rt_hw_spi_init                                                  go=> rt_hw_spi_bus_init
drv_spi.c         :593 | rt_hw_spi_bus_init                    
drv_spi.c         :691 | rt_hw_spi_bus_init                                              go=> rt_completion_init
drv_spi.c         :694 | rt_hw_spi_bus_init                                              go=> rt_spi_bus_register
dev_spi_core.c    :34  | rt_spi_bus_register                   
dev_spi_core.c    :37  | rt_spi_bus_register                                             go=> rt_spi_bus_device_init
dev_spi.c         :73  | rt_spi_bus_device_init                
dev_spi.c         :94  | rt_spi_bus_device_init                                          go=> rt_device_register
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  spi1
dev_spi_core.c    :43  | rt_spi_bus_register                                             go=> rt_mutex_init
drv_spi.c         :691 | rt_hw_spi_bus_init                                              go=> rt_completion_init
drv_spi.c         :694 | rt_hw_spi_bus_init                                              go=> rt_spi_bus_register
dev_spi_core.c    :34  | rt_spi_bus_register                   
dev_spi_core.c    :37  | rt_spi_bus_register                                             go=> rt_spi_bus_device_init
dev_spi.c         :73  | rt_spi_bus_device_init                
dev_spi.c         :94  | rt_spi_bus_device_init                                          go=> rt_device_register
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  spi2
dev_spi_core.c    :43  | rt_spi_bus_register                                             go=> rt_mutex_init
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  ramdisk0
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  ramdisk0
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  ramdisk0
device.c          :265 | rt_device_open                        
device.c          :266 | rt_device_open                                                  ramdisk0�
device.c          :267 | rt_device_open                                    7(0x00000007) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :268 | rt_device_open                                    0(0x00000000) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :281 | rt_device_open                                                  go=> device_init
device.c          :308 | rt_device_open                                                  go=> device_open
device.c          :329 | rt_device_open                                   23(0x00000017) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :330 | rt_device_open                                    8(0x00000008) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :331 | rt_device_open                                    1(0x00000001) <= dev->ref_count
device.c          :346 | rt_device_close                       
device.c          :347 | rt_device_close                                                 ramdisk0�
device.c          :348 | rt_device_close                                  23(0x00000017) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :349 | rt_device_close                                   8(0x00000008) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :368 | rt_device_close                                                 go=> device_close
device.c          :376 | rt_device_close                                  23(0x00000017) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :377 | rt_device_close                                   0(0x00000000) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :378 | rt_device_close                                   0(0x00000000) <= dev->ref_count
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  ramdisk0
device.c          :265 | rt_device_open                        
device.c          :266 | rt_device_open                                                  ramdisk0�
device.c          :267 | rt_device_open                                   23(0x00000017) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :268 | rt_device_open                                    0(0x00000000) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :308 | rt_device_open                                                  go=> device_open
device.c          :329 | rt_device_open                                   23(0x00000017) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :330 | rt_device_open                                    8(0x00000008) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :331 | rt_device_open                                    1(0x00000001) <= dev->ref_count
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  sd0
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  sd0
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  sd0
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  sd
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  sd0
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  sd0
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  sd0
device.c          :265 | rt_device_open                        
device.c          :266 | rt_device_open                                                  sd0
device.c          :267 | rt_device_open                                    3(0x00000003) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :268 | rt_device_open                                    0(0x00000000) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :308 | rt_device_open                                                  go=> device_open
device.c          :265 | rt_device_open                        
device.c          :266 | rt_device_open                                                  sd
device.c          :267 | rt_device_open                                    3(0x00000003) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :268 | rt_device_open                                    0(0x00000000) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :308 | rt_device_open                                                  go=> device_open
device.c          :329 | rt_device_open                                   19(0x00000013) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :330 | rt_device_open                                    8(0x00000008) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :331 | rt_device_open                                    1(0x00000001) <= dev->ref_count
device.c          :329 | rt_device_open                                   19(0x00000013) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :330 | rt_device_open                                    8(0x00000008) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :331 | rt_device_open                                    1(0x00000001) <= dev->ref_count
port_spiflash.c   :23  | spi_flash_init                        
port_spiflash.c   :25  | spi_flash_init                                                  go=> rt_hw_spi_device_attach
drv_spi.c         :709 | rt_hw_spi_device_attach               
drv_spi.c         :717 | rt_hw_spi_device_attach                                         go=> rt_malloc
drv_spi.c         :721 | rt_hw_spi_device_attach                                         go=> rt_spi_bus_attach_device_cspin
dev_spi_core.c    :90  | rt_spi_bus_attach_device_cspin        
dev_spi_core.c    :95  | rt_spi_bus_attach_device_cspin                                  go=> rt_device_find
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  spi1
dev_spi_core.c    :105 | rt_spi_bus_attach_device_cspin                                  go=> rt_spidev_device_init
dev_spi.c         :165 | rt_spidev_device_init                 
dev_spi.c         :185 | rt_spidev_device_init                                           go=> rt_device_register
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  spi10
dev_spi_core.c    :112 | rt_spi_bus_attach_device_cspin                                  go=> rt_pin_mode
dev_spi_core.c    :116 | rt_spi_bus_attach_device_cspin                                  go=> rt_memset
port_spiflash.c   :32  | spi_flash_init                                                  go=> rt_sfud_flash_probe
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  spi10
dev_spi_core.c    :180 | rt_spi_configure                      
dev_spi_core.c    :197 | rt_spi_configure                                                go=> rt_pin_write high
dev_spi_core.c    :221 | rt_spi_configure                                                go=> rt_spi_bus_configure
dev_spi_core.c    :139 | rt_spi_bus_configure                  
dev_spi_core.c    :150 | rt_spi_bus_configure                                            go=> device->bus->ops->configure
drv_spi.c         :573 | spi_configure                         
drv_spi.c         :581 | spi_configure                                                   go=> stm32_spi_init
drv_spi.c         :86  | stm32_spi_init                        
drv_spi.c         :240 | stm32_spi_init                                                  go=> HAL_SPI_Init
drv_spi.c         :254 | stm32_spi_init                                                  go=> HAL_DMA_Init
drv_spi.c         :260 | stm32_spi_init                                                  go=> HAL_NVIC_SetPriority
drv_spi.c         :261 | stm32_spi_init                                                  go=> HAL_NVIC_EnableIRQ
drv_spi.c         :268 | stm32_spi_init                                                  go=> HAL_DMA_Init
drv_spi.c         :274 | stm32_spi_init                                                  go=> HAL_NVIC_SetPriority
drv_spi.c         :275 | stm32_spi_init                                                  go=> HAL_NVIC_EnableIRQ
drv_spi.c         :282 | stm32_spi_init                                                  go=> HAL_NVIC_SetPriority
drv_spi.c         :283 | stm32_spi_init                                                  go=> HAL_NVIC_EnableIRQ
dev_spi_core.c    :312 | rt_spi_send_then_recv                 
dev_spi_core.c    :313 | rt_spi_send_then_recv                             1(0x00000001) <= send_length
dev_spi_core.c    :314 | rt_spi_send_then_recv                             3(0x00000003) <= recv_length
dev_spi_core.c    :350 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
dev_spi_core.c    :366 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :335 | spixfer                                           3(0x00000003) <= message_length
drv_spi.c         :350 | spixfer                                           3(0x00000003) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :487 | spixfer                                                         go=> HAL_SPI_Receive
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
dev_spi_core.c    :312 | rt_spi_send_then_recv                 
dev_spi_core.c    :313 | rt_spi_send_then_recv                             5(0x00000005) <= send_length
dev_spi_core.c    :314 | rt_spi_send_then_recv                             8(0x00000008) <= recv_length
dev_spi_core.c    :350 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           5(0x00000005) <= message_length
drv_spi.c         :350 | spixfer                                           5(0x00000005) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
dev_spi_core.c    :366 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :335 | spixfer                                           8(0x00000008) <= message_length
drv_spi.c         :350 | spixfer                                           8(0x00000008) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :487 | spixfer                                                         go=> HAL_SPI_Receive
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
dev_spi_core.c    :312 | rt_spi_send_then_recv                 
dev_spi_core.c    :313 | rt_spi_send_then_recv                             5(0x00000005) <= send_length
dev_spi_core.c    :314 | rt_spi_send_then_recv                             8(0x00000008) <= recv_length
dev_spi_core.c    :350 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           5(0x00000005) <= message_length
drv_spi.c         :350 | spixfer                                           5(0x00000005) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
dev_spi_core.c    :366 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :335 | spixfer                                           8(0x00000008) <= message_length
drv_spi.c         :350 | spixfer                                           8(0x00000008) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :487 | spixfer                                                         go=> HAL_SPI_Receive
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
dev_spi_core.c    :312 | rt_spi_send_then_recv                 
dev_spi_core.c    :313 | rt_spi_send_then_recv                             5(0x00000005) <= send_length
dev_spi_core.c    :314 | rt_spi_send_then_recv                            36(0x00000024) <= recv_length
dev_spi_core.c    :350 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           5(0x00000005) <= message_length
drv_spi.c         :350 | spixfer                                           5(0x00000005) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
dev_spi_core.c    :366 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :335 | spixfer                                          36(0x00000024) <= message_length
drv_spi.c         :350 | spixfer                                          36(0x00000024) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :375 | spixfer                                                         go=> rt_malloc_align
drv_spi.c         :377 | spixfer                                                         go=> rt_memcpy
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :480 | spixfer                                                         go=> HAL_SPI_Receive_DMA
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait
drv_spi.c         :757 | DMA2_Stream0_IRQHandler               
drv_spi.c         :761 | DMA2_Stream0_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :738 | SPI1_IRQHandler                       
drv_spi.c         :741 | SPI1_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1115| HAL_SPI_RxCpltCallback                
drv_spi.c         :1117| HAL_SPI_RxCpltCallback                                          go=> rt_completion_done
drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait...
drv_spi.c         :535 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :541 | spixfer                                                         go=> rt_free_align
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
dev_spi_core.c    :312 | rt_spi_send_then_recv                 
dev_spi_core.c    :313 | rt_spi_send_then_recv                             1(0x00000001) <= send_length
dev_spi_core.c    :314 | rt_spi_send_then_recv                             1(0x00000001) <= recv_length
dev_spi_core.c    :350 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
dev_spi_core.c    :366 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :487 | spixfer                                                         go=> HAL_SPI_Receive
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
dev_spi_core.c    :312 | rt_spi_send_then_recv                 
dev_spi_core.c    :313 | rt_spi_send_then_recv                             1(0x00000001) <= send_length
dev_spi_core.c    :314 | rt_spi_send_then_recv                             1(0x00000001) <= recv_length
dev_spi_core.c    :350 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
dev_spi_core.c    :366 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :487 | spixfer                                                         go=> HAL_SPI_Receive
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  W25Q64S
port_spiflash.c   :38  | spi_flash_init                                                  go=> fal_init
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  W25Q64S
port_spiflash.c   :40  | spi_flash_init                                                  go=> fal_blk_device_create
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  flashdb
port_spiflash.c   :45  | spi_flash_init                                                  go=> dfs_mount
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  flashdb
device.c          :265 | rt_device_open                        
device.c          :266 | rt_device_open                                                  flashdb
device.c          :267 | rt_device_open                                   11(0x0000000b) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :268 | rt_device_open                                    0(0x00000000) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :329 | rt_device_open                                   27(0x0000001b) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :330 | rt_device_open                                   11(0x0000000b) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :331 | rt_device_open                                    1(0x00000001) <= dev->ref_count
dev_spi_core.c    :312 | rt_spi_send_then_recv                 
dev_spi_core.c    :313 | rt_spi_send_then_recv                             1(0x00000001) <= send_length
dev_spi_core.c    :314 | rt_spi_send_then_recv                             1(0x00000001) <= recv_length
dev_spi_core.c    :350 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
dev_spi_core.c    :366 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :487 | spixfer                                                         go=> HAL_SPI_Receive
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
dev_spi_core.c    :312 | rt_spi_send_then_recv                 
dev_spi_core.c    :313 | rt_spi_send_then_recv                             4(0x00000004) <= send_length
dev_spi_core.c    :314 | rt_spi_send_then_recv                          4096(0x00001000) <= recv_length
dev_spi_core.c    :350 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           4(0x00000004) <= message_length
drv_spi.c         :350 | spixfer                                           4(0x00000004) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
dev_spi_core.c    :366 | rt_spi_send_then_recv                                           go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :335 | spixfer                                        4096(0x00001000) <= message_length
drv_spi.c         :350 | spixfer                                        4096(0x00001000) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :375 | spixfer                                                         go=> rt_malloc_align
drv_spi.c         :377 | spixfer                                                         go=> rt_memcpy
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :480 | spixfer                                                         go=> HAL_SPI_Receive_DMA
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait
drv_spi.c         :757 | DMA2_Stream0_IRQHandler               
drv_spi.c         :761 | DMA2_Stream0_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :757 | DMA2_Stream0_IRQHandler               
drv_spi.c         :761 | DMA2_Stream0_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :738 | SPI1_IRQHandler                       
drv_spi.c         :741 | SPI1_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1115| HAL_SPI_RxCpltCallback                
drv_spi.c         :1117| HAL_SPI_RxCpltCallback                                          go=> rt_completion_done
drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait...
drv_spi.c         :535 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :541 | spixfer                                                         go=> rt_free_align
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  uart4
device.c          :265 | rt_device_open                        
device.c          :266 | rt_device_open                                                  uart4
device.c          :267 | rt_device_open                                   19(0x00000013) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :268 | rt_device_open                                24648(0x00006048) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :308 | rt_device_open                                                  go=> device_open
device.c          :329 | rt_device_open                                   19(0x00000013) <= dev->flag 1:rd 2:wr 3:rdwr 4:remove 10:act
device.c          :330 | rt_device_open                                24648(0x00006048) <= dev->open_flag 1:rd 2:wr 3:rdwr 8:open
device.c          :331 | rt_device_open                                    2(0x00000002) <= dev->ref_count
spi_st7789.c      :215 | lcd_clear_test                        
spi_st7789.c      :155 | lcd_init                              
spi_st7789.c      :35  | rt_spi_lcd_init                       
spi_st7789.c      :50  | rt_spi_lcd_init                                                 go=> rt_hw_spi_device_attach
drv_spi.c         :709 | rt_hw_spi_device_attach               
drv_spi.c         :717 | rt_hw_spi_device_attach                                         go=> rt_malloc
drv_spi.c         :721 | rt_hw_spi_device_attach                                         go=> rt_spi_bus_attach_device_cspin
dev_spi_core.c    :90  | rt_spi_bus_attach_device_cspin        
dev_spi_core.c    :95  | rt_spi_bus_attach_device_cspin                                  go=> rt_device_find
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  spi2
dev_spi_core.c    :105 | rt_spi_bus_attach_device_cspin                                  go=> rt_spidev_device_init
dev_spi.c         :165 | rt_spidev_device_init                 
dev_spi.c         :185 | rt_spidev_device_init                                           go=> rt_device_register
device.c          :96  | rt_device_register                    
device.c          :97  | rt_device_register                                              spi20
device.c          :98  | rt_device_register                                3(0x00000003) <= flags
device.c          :103 | rt_device_register                                              go=> rt_device_find
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  spi20
device.c          :107 | rt_device_register                                              go=> rt_object_init
dev_spi_core.c    :112 | rt_spi_bus_attach_device_cspin                                  go=> rt_pin_mode
dev_spi_core.c    :116 | rt_spi_bus_attach_device_cspin                                  go=> rt_memset
spi_st7789.c      :52  | rt_spi_lcd_init                                                 go=> rt_device_find
device.c          :156 | rt_device_find                        
device.c          :157 | rt_device_find                                                  spi20
spi_st7789.c      :60  | rt_spi_lcd_init                                                 go=> rt_spi_configure
dev_spi_core.c    :180 | rt_spi_configure                      
dev_spi_core.c    :197 | rt_spi_configure                                                go=> rt_pin_write high
dev_spi_core.c    :221 | rt_spi_configure                                                go=> rt_spi_bus_configure
dev_spi_core.c    :139 | rt_spi_bus_configure                  
dev_spi_core.c    :150 | rt_spi_bus_configure                                            go=> device->bus->ops->configure
drv_spi.c         :573 | spi_configure                         
drv_spi.c         :581 | spi_configure                                                   go=> stm32_spi_init
drv_spi.c         :86  | stm32_spi_init                        
drv_spi.c         :240 | stm32_spi_init                                                  go=> HAL_SPI_Init
drv_spi.c         :254 | stm32_spi_init                                                  go=> HAL_DMA_Init
drv_spi.c         :260 | stm32_spi_init                                                  go=> HAL_NVIC_SetPriority
drv_spi.c         :261 | stm32_spi_init                                                  go=> HAL_NVIC_EnableIRQ
drv_spi.c         :268 | stm32_spi_init                                                  go=> HAL_DMA_Init
drv_spi.c         :274 | stm32_spi_init                                                  go=> HAL_NVIC_SetPriority
drv_spi.c         :275 | stm32_spi_init                                                  go=> HAL_NVIC_EnableIRQ
drv_spi.c         :282 | stm32_spi_init                                                  go=> HAL_NVIC_SetPriority
drv_spi.c         :283 | stm32_spi_init                                                  go=> HAL_NVIC_EnableIRQ
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   5(0x00000005) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           5(0x00000005) <= message_length
drv_spi.c         :350 | spixfer                                           5(0x00000005) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   2(0x00000002) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           2(0x00000002) <= message_length
drv_spi.c         :350 | spixfer                                           2(0x00000002) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   3(0x00000003) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           3(0x00000003) <= message_length
drv_spi.c         :350 | spixfer                                           3(0x00000003) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                  14(0x0000000e) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                          14(0x0000000e) <= message_length
drv_spi.c         :350 | spixfer                                          14(0x0000000e) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :375 | spixfer                                                         go=> rt_malloc_align
drv_spi.c         :377 | spixfer                                                         go=> rt_memcpy
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :460 | spixfer                                                         go=> HAL_SPI_Transmit_DMA
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :792 | SPI2_IRQHandler                       
drv_spi.c         :796 | SPI2_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1107| HAL_SPI_TxCpltCallback                
drv_spi.c         :1109| HAL_SPI_TxCpltCallback                                          go=> rt_completion_done
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait
drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait...
drv_spi.c         :541 | spixfer                                                         go=> rt_free_align
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                  14(0x0000000e) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                          14(0x0000000e) <= message_length
drv_spi.c         :350 | spixfer                                          14(0x0000000e) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :375 | spixfer                                                         go=> rt_malloc_align
drv_spi.c         :377 | spixfer                                                         go=> rt_memcpy
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :460 | spixfer                                                         go=> HAL_SPI_Transmit_DMA
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :792 | SPI2_IRQHandler                       
drv_spi.c         :796 | SPI2_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1107| HAL_SPI_TxCpltCallback                
drv_spi.c         :1109| HAL_SPI_TxCpltCallback                                          go=> rt_completion_done
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait
drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait...
drv_spi.c         :541 | spixfer                                                         go=> rt_free_align
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :91  | write_command                         
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   4(0x00000004) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           4(0x00000004) <= message_length
drv_spi.c         :350 | spixfer                                           4(0x00000004) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   4(0x00000004) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           4(0x00000004) <= message_length
drv_spi.c         :350 | spixfer                                           4(0x00000004) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :91  | write_command                         
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :91  | write_command                         
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :209 | lcd_clear                             
spi_st7789.c      :189 | lcd_fill_block                        
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   4(0x00000004) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           4(0x00000004) <= message_length
drv_spi.c         :350 | spixfer                                           4(0x00000004) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   4(0x00000004) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           4(0x00000004) <= message_length
drv_spi.c         :350 | spixfer                                           4(0x00000004) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :110 | write_command_pixels                  
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_writespi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                              115200(0x0001c200) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                      115200(0x0001c200) <= message_length/*长度>10, 发送需要使用dma*/
drv_spi.c         :350 | spixfer                                       65535(0x0000ffff) <= send_length/*先发送65535个*/
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops/*清理cache*/
drv_spi.c         :460 | spixfer                                                         go=> HAL_SPI_Transmit_DMA
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait/*等待完成*//*触发了中断*/
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
/*在dma_stream中断中开启spi中断, 并触发spi中断*/
drv_spi.c         :792 | SPI2_IRQHandler                       
drv_spi.c         :796 | SPI2_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1107| HAL_SPI_TxCpltCallback                
drv_spi.c         :1109| HAL_SPI_TxCpltCallback                                          go=> rt_completion_done/*spi回调函数中发送完成量*/drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait.../*spixfer唤醒*/
drv_spi.c         :335 | spixfer                                       49665(0x0000c201) <= message_length/*还剩49665个*/
drv_spi.c         :350 | spixfer                                       49665(0x0000c201) <= send_length/*再次发送49665个*/
drv_spi.c         :351 | spixfer                                       65535(0x0000ffff) <= already_send_length
drv_spi.c         :375 | spixfer                                                         go=> rt_malloc_align/*这次发送内存不对齐, 需要申请对齐的内存buffer_align*/
drv_spi.c         :377 | spixfer                                                         go=> rt_memcpy/*然后复制*/
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops/*清理cache*/
drv_spi.c         :460 | spixfer                                                         go=> HAL_SPI_Transmit_DMA/*然后发送*/
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait/*等待完成*//*触发了中断*/
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
/*在dma_stream中断中开启spi中断, 并触发spi中断*/
drv_spi.c         :792 | SPI2_IRQHandler                       
drv_spi.c         :796 | SPI2_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1107| HAL_SPI_TxCpltCallback                
drv_spi.c         :1109| HAL_SPI_TxCpltCallback                                          go=> rt_completion_done/*spi回调函数中发送完成量*/drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait.../*spixfer唤醒*/
drv_spi.c         :541 | spixfer                                                         go=> rt_free_align/*需要执行复制到buffer操作, 然后释放buffer_align*/
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_writespi_st7789.c      :209 | lcd_clear                             
spi_st7789.c      :189 | lcd_fill_block                        
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   4(0x00000004) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           4(0x00000004) <= message_length
drv_spi.c         :350 | spixfer                                           4(0x00000004) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   4(0x00000004) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           4(0x00000004) <= message_length
drv_spi.c         :350 | spixfer                                           4(0x00000004) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :110 | write_command_pixels                  
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                              115200(0x0001c200) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                      115200(0x0001c200) <= message_length
drv_spi.c         :350 | spixfer                                       65535(0x0000ffff) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :460 | spixfer                                                         go=> HAL_SPI_Transmit_DMA
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :792 | SPI2_IRQHandler                       
drv_spi.c         :796 | SPI2_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1107| HAL_SPI_TxCpltCallback                
drv_spi.c         :1109| HAL_SPI_TxCpltCallback                                          go=> rt_completion_done
drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait...
drv_spi.c         :335 | spixfer                                       49665(0x0000c201) <= message_length
drv_spi.c         :350 | spixfer                                       49665(0x0000c201) <= send_length
drv_spi.c         :351 | spixfer                                       65535(0x0000ffff) <= already_send_length
drv_spi.c         :375 | spixfer                                                         go=> rt_malloc_align
drv_spi.c         :377 | spixfer                                                         go=> rt_memcpy
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :460 | spixfer                                                         go=> HAL_SPI_Transmit_DMA
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :792 | SPI2_IRQHandler                       
drv_spi.c         :796 | SPI2_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1107| HAL_SPI_TxCpltCallback                
drv_spi.c         :1109| HAL_SPI_TxCpltCallback                                          go=> rt_completion_done
drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait...
drv_spi.c         :541 | spixfer                                                         go=> rt_free_align
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :209 | lcd_clear                             
spi_st7789.c      :189 | lcd_fill_block                        
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   4(0x00000004) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           4(0x00000004) <= message_length
drv_spi.c         :350 | spixfer                                           4(0x00000004) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :99  | write_command_data                    
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   4(0x00000004) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           4(0x00000004) <= message_length
drv_spi.c         :350 | spixfer                                           4(0x00000004) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :110 | write_command_pixels                  
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                                   1(0x00000001) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                           1(0x00000001) <= message_length
drv_spi.c         :350 | spixfer                                           1(0x00000001) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :465 | spixfer                                                         go=> HAL_SPI_Transmit
drv_spi.c         :526 | spixfer                                                         go=> HAL_SPI_GetState
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
spi_st7789.c      :29  | lcd_write_dc                          
dev_spi_core.c    :392 | rt_spi_transfer                       
dev_spi_core.c    :393 | rt_spi_transfer                              115200(0x0001c200) <= length
dev_spi_core.c    :430 | rt_spi_transfer                                                 go=> device->bus->ops->xfer
drv_spi.c         :294 | spixfer                               
drv_spi.c         :319 | spixfer                                                         go=> rt_pin_write low
drv_spi.c         :335 | spixfer                                      115200(0x0001c200) <= message_length
drv_spi.c         :350 | spixfer                                       65535(0x0000ffff) <= send_length
drv_spi.c         :351 | spixfer                                           0(0x00000000) <= already_send_length
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :460 | spixfer                                                         go=> HAL_SPI_Transmit_DMA
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :792 | SPI2_IRQHandler                       
drv_spi.c         :796 | SPI2_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1107| HAL_SPI_TxCpltCallback                
drv_spi.c         :1109| HAL_SPI_TxCpltCallback                                          go=> rt_completion_done
drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait...
drv_spi.c         :335 | spixfer                                       49665(0x0000c201) <= message_length
drv_spi.c         :350 | spixfer                                       49665(0x0000c201) <= send_length
drv_spi.c         :351 | spixfer                                       65535(0x0000ffff) <= already_send_length
drv_spi.c         :375 | spixfer                                                         go=> rt_malloc_align
drv_spi.c         :377 | spixfer                                                         go=> rt_memcpy
drv_spi.c         :381 | spixfer                                                         go=> rt_hw_cpu_dcache_ops
drv_spi.c         :460 | spixfer                                                         go=> HAL_SPI_Transmit_DMA
drv_spi.c         :515 | spixfer                                                         go=> rt_completion_wait
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :832 | DMA1_Stream4_IRQHandler               
drv_spi.c         :836 | DMA1_Stream4_IRQHandler                                         go=> HAL_DMA_IRQHandler
drv_spi.c         :792 | SPI2_IRQHandler                       
drv_spi.c         :796 | SPI2_IRQHandler                                                 go=> HAL_SPI_IRQHandler
drv_spi.c         :1107| HAL_SPI_TxCpltCallback                
drv_spi.c         :1109| HAL_SPI_TxCpltCallback                                          go=> rt_completion_done
drv_spi.c         :522 | spixfer                                                         wake from rt_completion_wait...
drv_spi.c         :541 | spixfer                                                         go=> rt_free_align
drv_spi.c         :558 | spixfer                                                         go=> rt_pin_write
msg_index=1235
http://www.dtcms.com/a/342977.html

相关文章:

  • 生信分析自学攻略 | R语言函数与参数介绍
  • kylin v10只允许kylin用户登录解决办法
  • 雅菲奥朗SRE知识墙分享(四):『AI已开始重塑劳动力市场,美国年轻科技从业者首当其冲』
  • 数据结构-HashSet
  • 黑马程序员jbdc笔记
  • 迅为R3568开发板OpeHarmony学习开发手册-配置远程访问环境
  • mac m1上使用Kerberos访问远程linux hadoop集群的正确姿势
  • Android 定位技术全解析:从基础实现到精准优化
  • redis在Spring中应用相关
  • LeetCode算法日记 - Day 17: 算法中的位运算技巧总结
  • 【黑客技术零基础入门】硬核科普什么是HTMLHTML基本结构以及HTML基本使用(非常详细)零基础入门到精通,收藏这一篇就够了!
  • 轻量级加密的下一站:后量子、AI 与自动化验证
  • 【iOS】SDWebImage第三方库源码学习笔记
  • JupyterLab 安装(python3.10)
  • 大模型之原理篇——Transformer基础、分词器
  • 深度剖析:PCB 厚铜板铜厚检测,铜厚不足的连锁反应及检测手段
  • 性能测试中性能分析与调优学习大纲整理
  • C++中纯虚函数与普通虚函数的深度解析
  • 面试紧张情绪管理:如何保持冷静自信应对挑战
  • CLAUDE.md文件介绍(Claude Code核心配置文件,开始对话或执行任务时自动加载的上下文文件)
  • 工业大模型的应用场景
  • Ubuntu22.04设置共享文件夹
  • 2025年渗透测试面试题总结-25(题目+回答)
  • 数据库运维管理平台全面解析
  • opencv学习:图像边缘检测
  • # 重磅发布 | onecode 3.0.1 Base 源码正式开源:AI赋能的企业级开发框架
  • 算法训练营day58 图论⑧ 拓扑排序精讲、dijkstra(朴素版)精讲
  • 从零开始的Agent学习(二)-增加文档输出功能
  • 医疗信创新征程:常德二院全栈国产化项目引领行业变革
  • 审美积累 | 界面设计拆分 | Redesign Health - Services 医疗页面设计