- 博客(63)
- 资源 (2)
- 收藏
- 关注
原创 瑞芯微 MIPI D-PHY 接收器(RX)驱动学习笔记
驱动文件位置 driver/phy/rockchip/phy-rockchip-mipi-rx.c。
2025-06-12 14:56:43
345
原创 gc2053驱动学习笔记
用于计算像素速率,表示单位时间内输出的像素数量。通过设备树获取摄像头模块索引,摄像头模块方向,摄像头模块名称,摄像头镜头名称,摄像头外部时钟,复位,上电,下电的gpio引脚。.hdr_mode enum HDR 模式(如 NO_HDR, HDR_2EXP 等).hdr_mode enum HDR 模式(如 NO_HDR, HDR_2EXP 等)
2025-06-05 18:27:22
582
原创 zynq ad7616 调试笔记
4 下载 main分支下的driver下的ad7616.c文件,这个ad7616.c中有需要移植的四个函数。2 在zynq的sdk中新建ad7616的app程序,将上图方框中的文件拷贝过来并编译。环境 zynq7020 ps端的spi外接硬件的ad7616模块(非ip核)ad7616_setup_sequencer四个函数到ad7616.c文件中。3 移植 ad7616_read_data_serial。5 ad7616序列模式配置。
2025-05-29 15:40:18
180
原创 zynq裸机实现 USB读写 sd/emmc (U盘功能)。
将 zynq xusbps_class_storage.c 里的scsi的相关usb的读写命令从读写内存替换为读写sd卡的接口。我的sd卡的裸机接口读写失败,代码挂载的是emmc。xusbps_intr_example.c的代码。xusbps_class_storage.c代码。
2025-04-17 16:01:08
336
原创 zynq xusbps_class_storage.c 分析
CBW(Command Block Wrapper)和CSW(Command Status Wrapper)是 USB大容量存储设备(Mass Storage) 的核心通信协议单元,遵循 SCSI命令集 和 Bulk-Only传输规范,用于主机(Host)与设备(Device)之间的命令交互与状态反馈。XUsbPs_HandleStorageReq是一个处理 USB 存储请求的函数,负责解析 CBW(Command Block Wrapper)数据包中的 SCSI 命令,并根据命令类型执行相应的操作。
2025-04-16 11:38:31
902
原创 zynq usb的初始化流程
---》将传入的配置结构体 CfgPtr 的内容复制到 InstancePtr->DeviceConfig 中。----》调用 XUsbPs_Reset 复位USB控制器。(1) 处理 Setup 包事件 (XUSBPS_EP_EVENT_SETUP_DATA_RECEIVED)----》将对齐后的DMA内存地址写入USB控制器的寄存器中,告诉控制器队列头列表的起始地址。----》端点列表、队列头(dQH)、传输描述符(dTD)的初始化。----》设置USB控制器为设备模式。----》使能OTG功能。
2025-04-15 11:39:58
469
原创 zynq sd卡初始化流程
--->从 SD 卡控制器的响应寄存器中读取卡的 CSD 数据,并将其存储到 CSD 数组中,(在发送 CMD9 后,卡会返回其 CSD 数据。---->通过发送 CMD3 和 CMD9 命令,分别为 SD 卡分配相对卡地址(RCA)并获取卡的特定数据(CSD),RCA 是主机用来唯一标识和寻址卡的一个 16 位值,CSD 包含卡的容量、块大小、读写速度等信息。XSDPS_ACMD41_HCS | XSDPS_CMD1_HIGH_VOL 通知sd卡主机支持HCS高容量和高电压。
2025-04-11 15:15:09
604
原创 zynq的sd与emmc调试记录
emmc使用官方例程进行测试,唯一的改动是XPAR_PS7_SD_0_DEVICE_ID,因为我的emmc是挂在sd0上,这个和官方不一样。这是vivade配置,注意我的CD引脚没有勾选,这个要看自己的板子的原理图进行选择。我的 sd0接的是emmc,sd1接的是tf卡,这个正好是和官方的接法是相反的。tf卡使用官方例程进行测试,改动在驱动号和文件路径。sd的io电压3.3v,emmc的io电压1.8v。1 sd卡和emmc的区别。2 vivade的配置。
2025-04-10 14:08:39
354
2
原创 zynq7000 + ucos3 + lwip202_v1_2调试过程
直接把lwip202_v1_2复制到ucos_lwip_bsp的libsrc文件夹中。编译时会报错, 直接把相关的报错文件引用的xuartps.h注释掉。zynq 网卡Phy setup error问题。2 ping同以后,在zynq上添加ucos系统。打开 mss文件中的source,在如下位置添加。跑起来可能会报错,看下面的链接解决。1 现在裸机应用上验证lwip。3 移植lwip协议栈。
2025-03-28 19:22:40
367
原创 问题记录 freertos程序卡死在xQueueSendFromISR
然后NVIC_EnableIRQRequest(COM2_IRQn,7,0);使用的中断优先级低于配置的configMAX_SYSCALL_INTERRUPT_PRIORITY的值。将freertosconfig.h文件中 的 #define configMAX_SYSCALL_INTERRUPT_PRIORITY 6。
2025-02-28 15:37:32
283
原创 Keil5在编译过程中出现.cannot open source input file “lwip/opt.h“: No such file or directory的问题
解决方法如图 除了把include文件的目录添加进去,把他的上层目录也要依次添加进去。
2024-12-31 11:03:43
681
原创 node js 过滤空白行
这种方法不仅移除了文件开头和结尾的空白行,还确保了每一行内部的多余空白也被清理掉。此外,它不会遗漏中间的空白行(如果有的话),因为trim()是在分割之后应用于每一行的。只过滤文件开头和结尾的空白行。
2024-12-27 21:32:17
349
原创 获取 token
确保已在仪表板上登录你的 AIGaea 帐户 右键单击 > 检查或 F12 搜索/前往/单击应用程序 > 存储 > 单击本地存储 > 单击Gaea 填写过滤器 gaea_token / browser_id 即可找到你的 Gaea Token / BrowserId
2024-12-01 14:24:03
194
原创 小记,一次龙芯2K nand ecc错误
2 第二种是系统下报ecc错误,第一种和上述一样,要改cs的操作,还有一种比较操蛋了,是系统的镜像大小超过了50M,且从mtd1启动,但mtd1只有50M,这种情况要把mtd1改大,改成60M就可以了。1 第一种 nand 的片选设置不对,默认的nand cs是 cs0, 但定制板的nand cs是cs2,需要更改nand 的cs,以及和cs相关的寄存器的初始化的 操作。
2024-11-28 10:49:26
261
原创 create_image
define create_image # 复制 GDB 到根文件系统 #@cp -rfa $(USP_DEVICE_DIR)/arch/$(CPU_ARCH)/image/gdb $(ROOTFS)/bin/gdb @cp -rf $(USP_DEVICE_DIR)/make/$(CPU_ARCH)_8180/boot/* $(ROOTFS)/plat/ @cp -rf $(USP_DEVICE_DIR)/make/checkmd5.sh $(ROOTFS)/usr/bin/ @cp -rf $(USP_
2024-11-27 14:22:58
418
原创 linux内存管理学习笔记
https://zhuanlan.zhihu.com/p/631356509万字整理,肝翻Linux内存管理所有知识点-CSDN博客计算机组成原理——原理篇 储存 - 小萝卜鸭 - 博客园
2024-11-11 17:00:33
151
原创 gd32笔记
最终定位到发生问题的函数: shell_version_cmd --> unti_strcmp --> LDRB r2 ,[r1,#0]。HardFault 问题查找步骤 : 发生HardFault时 ,当前PC 和 LR参考意义不大 ,应该根据当前SP指针的地址 , 获取此8个寄存器的值 ,其中PC为发生异常时的PC,LR为发生异常代码所在函数的下一条执行的代码 , R0-R4 为过程值 ,可能为参数 ,返回值 ,内存加载值等等 ,具体依靠PC和LR能分析其内容。
2024-11-08 09:11:44
309
原创 linux 进程调度学习笔记
el0_sync 是 ARM 架构中处理来自 EL0(用户模式)同步异常的入口点。同步异常是指那些在执行特定指令时立即触发的异常,而不是由外部事件(如中断)引起的异常。Kernel 判断当前进程标记是否为 TIF_NEED_RESCHED,是的话调用 schedule 函数,执行调度,切换上下文,这也是上面抢占(preempt)机制的本质。是 ARMv8-A 架构中处理来自 EL1(内核模式)的中断(IRQ)的异常处理入口。ret_to_user 是异常触发,系统调用,中断处理完成后都会调用的函数。
2024-11-07 20:17:33
417
原创 usb学习笔记
设备将自身的配置信息保存在本地 ,主机在检测到设备接入时 ,通过端点0获取设备配置信息,然后根据配置信息,使用配置的模式以及配置的数据端点通信 ,这个过程称为。控制传输为了保证配置数据的传输的有效性,使用了指令再确认机制。BULK传输的速率取决于主机IN 或OUT事务的间隔,系统占用率高,IN或OUT事务间隔可能就变大,系统占用率小,IN或OUT事务间隔可能减小。同步传输综合了BULK传输的整体速率,以及中断传输的实时性,但是去掉了事务的应答,不具备错误重发机制,多用于音视频传输允许少量错误失真地方。
2024-10-30 16:27:18
311
原创 龙芯2k yt8511 phy linux系统下的调试记录
最初 yt8511在系统下只能协商为10M,而且if down 再if up后就不通了。因为做的板子上一个版本用的是yt8521,是正常的,想着把配置都换成8521的配置。代码修改位置drivers/net/phy/motorcomm.c。启动linux,能够正常自协商成1000M了。折腾了一天也没整好。
2024-10-15 14:44:09
403
原创 iar 使用笔记
option->custom build->command line 填入 --load_at=0x004000000。1 iar 如何指定app代码的加载地址?
2024-07-04 17:42:08
177
原创 1394 笔记
条件3,STOF消息表明CC处在一个合法的操作模式,并且在一个“好的”状态,通过条件1和2一旦认定STOF消息是有效的,远程节点必须检查CC的状态。在后续连续一段时间内,如果STOF消息是无效的,远程节点必须认为相应的CC为失效。如果从上一个STOF消息之后10ms±50μs到105μs内接收到STOF消息,不论上一个STOF消息是否有效,均认为本条STOF消息周期正确。在后续连续一段时间内,如果STOF消息不符合上述的条件,远程节点必须认为相应的CC失效。条件4,CC给节点的消息是有效的。
2024-04-29 23:38:31
1096
4
原创 裸机 lwip,客户端断开连接后,无法重新连接server端
修改error_callback函数,将tcp_server_disconnect函数中的tcp_abort替换为tcp_close。/* PC上位机如果正常运行中闪退或者不良退出会出现这个错误,此时服务器需要释放掉连接 *///tcp_abort(tpcb);/* 关闭连接并释放tpcb控制块 */
2024-04-24 23:27:36
1376
原创 复旦微 zynq amp cpu0 唤醒启动cpu1
这里注意选择apu 0,这样cpu1就不会主动唤醒了,而是等待被cpu0唤醒。2 在cpu0的main函数中增加唤醒代码 active_cpu1();代码load地址就是 icf 文件中分配的代码起始地址。3 打包 boot.bin,几个注意事项见下图。1 配置多核amp工程,参考上一篇文章。
2024-02-06 17:20:02
1152
原创 复旦微zynq amp 多核使用
6. 打包 boot.bin 文件,boot.bin 文件由 fsbl+bit+app0+app1+app2+app3 组成,注意修改 destination CPU 和 cstartup.s 文件一致。4. 修改初始化代码,fsbl 里边已经将 DDR 等硬件初始化好了,注释掉哦 app 中的初始化 代码,避免重复是初始化。5.修改工程的 a7_ahbsram.icf,主要修改点是将地址指向 DDR 上,多个 core 使 用的地址空间分隔开。7 固化后,重新上电,打印效果。
2024-02-06 15:32:34
1339
4
原创 zynq fmql45+ast88e1111 lwip的调试过程笔记。
11 分段测试tx clk ,在mac init 后,加while(1),阻塞,发现这时候,tx clk 还是25M 是正常的,但是跑起复旦微的官方lwip测试历程后,tx clk 就开始放飞了, 来回的变,观察lwip app代码,发现有段代码可疑,注释掉。5 先扫phy id 扫不到,测试复位信号,通过一通折腾,发现国产的88e1111工作慢,复位以后,好久才能扫到phy id ,没办法加延时。9 测试tx rx clk ,发现rx clk 25M是100M的速度,但是tx clk 来回变化,不稳定。
2024-01-18 09:56:38
1825
6
原创 gd32问题记录 FreeRTOS_send函数发送成功,对方却收不到信息
define configTOTAL_HEAP_SIZE ( ( size_t ) ( 40 * 1024 ) ) 堆空间默认20*1024,太小网络任务无法运行但是不报错。
2024-01-05 14:12:55
487
原创 zynq vivado 工程修改FPGA 型号
FPGA 学习笔记:Vivado 工程更改FPGA 型号_vivado添加新的fpga型号-CSDN博客
2023-12-28 16:07:05
1127
原创 zynq 导出canfd的测试工程
假设 CAN 时钟频率为 24MHz,波特率预分频寄存器 (BRPR) 和位定时寄存器 (BTR) 的设置使 CAN 波特率等于 40Kbps。有关更多信息,请参阅 CAN 2.0A、CAN 2.0B、ISO 11898-1 规范。假设 CAN 时钟为 24MHz,波特率预分频寄存器 (BRPR) 和位定时寄存器 (BTR) 的设置使 CAN 波特率等于 40Kbps。有关更多信息,请参阅 CAN 2.0A、CAN 2.0B、ISO 11898-1 规范。这里的示例显示了在中断模式下使用驱动程序/设备。
2023-12-26 11:15:13
989
PMON 下的 x86vga模拟器工作机制.docx
2020-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人