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