- 博客(18)
- 收藏
- 关注
原创 Qt无法定位程序输入点_ZdaPvj于动态链接库 Qt5Core.dl Qt5Gui.dll ... 上
本方法参考C:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin\qtenv2.bat脚本文件,其实执行Qt 5.14.2 (MinGW 7.3.0 32-bit)时会默认执行该脚本。备注: 其中C:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin根据使用的编译器来改路径;保存文件create32.bat,然后双击create32.bat文件,便可重新拷贝新的所需库到本路径。
2024-01-20 18:25:45
921
原创 麒麟系统调试
办法:配置/etc/modeprobe.d/xxx.conf文件,定义开机自动加载模块信息;下一次上电还是无驱动,导致不能创建raid。或/etc/modules。
2023-06-10 22:26:25
869
原创 Linux AHCI 驱动(中断部分)
调用trace_scsi_dispatch_cmd_done后,linux系统中mount -t debugfs none /sys/kernel/debug/,便能在/sys/kernel/debug/tracing/events/scsi目录下看到scsi_dispatch_cmd_done。1.一些命令被取消或超时或错误时会调用scsi_eh_scmd_add将错误scsi命令添加到错误命令链表中,并调用scsi_eh_inc_host_failed接口shost->host_failed++;
2023-05-10 19:05:09
2818
8
原创 Linux SATA驱动
SATA规范只规定了FIS结构、Shadow Regs(Command/Control)、SATA Regs(SCR0~15)、命令流程,并未规定SATA控制器如何给软件提供寄存器接口,如软件如何组装FIS、在哪个地址读取SCR0~4。导致不同芯片的sata驱动都不同,所以后面interl出了一个ahci规范,用于规范SATA对上层应用的接口。SATA使用FPDMA(First-party DMA)引擎来允许设备知道从哪里获取正确的DMA数据。
2023-04-26 17:54:31
2383
原创 SATA-AHCI规范学习
Port Multiplier是一种可以在一个控制器上扩展多个SATA设备的技术,它采用4位(bit)宽度的Port Multiplier端口字段,其中控制端口占用一个地址,因此最多能输出15个设备连接----与并行SCSI相当。FIS是SATA协议中用于Host和device之间信息传输的机制,每个FIS的格式都是固定的,并且对应唯一的ID,SATA Spec定义了14类FIS ID。用于容纳AHCI寄存器以及厂商特定的寄存器,即AHCI的寄存器是基于BAR5来偏移的。分PIO mode0-6,速率。
2023-04-25 10:47:10
9613
13
原创 U-Boot 学习
lmb所记录的内存信息最终会传递给kernel。在/include/lmb.h和/lib/lmb.c中有对lmb的接口和定义的具体描述。linux kernel从stext开始启动,整个流程大概就是读取X0(FDT地址)保存到X21中,又将X21保存到__fdt_pointer全局变量中,然后再将__fdt_pointer解析处cmdline数据到boot_command_line全局变量中。在kernel镜像的基础上,加上64Byte的信息提供给uboot使用,定义在include/image.h中。
2023-04-21 18:41:08
1802
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人