- 博客(67)
- 收藏
- 关注
原创 fmql之Linux timer
使用timer定时,有不同的方法:模拟定时器,usleep硬件定时器/sys/class/timer硬件定时器/sys/class/timer + /dev/memtimer简介GIC中断控制器、设备树插件(Device Tree Overlay)以及内核定时器介绍-优快云博客驱动程序编写:13、IMX6ULL学习笔记-linux设备树之内核定时器实验_正点原子imx6ull内核定时器实验-优快云博客。
2025-01-22 15:29:54
747
原创 fmql之模拟IIC调试(2)
【注】linux下,rtc的SCL频率为约70kHz,裸跑下,设置的频率为约60kHz。这样就确保所有的数据都成功写入(虽然会有多次重复写入同一数据)基于上一篇模拟iic调试rtc的文章,找到了可行的方法。这篇主要是代码修改部分的记录。新代码写——所有的数据都写一遍。原代码写——年、日、时、秒。
2025-01-07 14:54:31
265
原创 fmql编译过程记录 - 裸跑&linux
PeripheralTest工程:各个外设的简单测试。Lwip工程:tcp / udp的简单通信。bit文件为vivado生成的bit文件。连接J-LINK,给开发板上电。打开Procise和SDK。切换到自己的工程,debug。FSBL工程:硬件初始化。
2025-01-07 11:19:41
322
原创 linux之多线程
和uart_rev函数的编写有关:(猜测)FD_ZERO、FD_SET、select、tcflush函数的使用影响进程的时间。Makefile文件,用来生成驱动程序 .ko 文件(也可修改Makefile,生成app)修改uartps.c 的代码,创建2个线程。测试添加线程的外设(已测试uart、tcp)tcp接收字符串数据部分还需要修改。了解linux下gpio相关的文件。petalinux安装目录下;上图:按照正点原子教程学的。目前写了代码,但是不成功。SDK安装包目录下。
2025-01-06 14:02:56
730
原创 fmql之Linux flash读写
ubuntu在板卡启动后,会占用部分flash的内存。目前用的是256Mb的flash,型号是w25q256。ubuntu系统和启动文件(BOOT.bin等)都放在SD卡。前者放在SD卡的第三个分区,后者放在第一个分区。现在要进行flash和SD卡的读写测试。【代码贴到最后了】
2024-10-29 14:58:16
1065
原创 fmql之Linux CAN
安装can-utils安装包(参考fmql官方教程),把需要的d可执行文件如cansend、candump等拷贝到开发板ubuntu的/user/lib/out/bin目录下(该目录参考正点原子教程)。配置dts设备树(vivado配置的话,生成的dts会有can的内容)安装ZCANPRO,即CAN-TOOL的驱动(否则USBCAN-E-U识别不到CAN设备)CAN的相关Shell命令在“其他命令(重要)”部分,配置can0。
2024-10-15 11:39:24
944
原创 fmql之Linux Uart_PS/PL
(命令不唯一)配置uart: stty -F /dev/ttyPS1 ispeed 115200 ospeed 115200 cs8发送数据: echo "send_data" | sudo tee /dev/ttyPS1接收数据: cat /dev/ttyPS1。
2024-10-15 11:39:12
466
原创 fmql之Linux下AXI GPIO、MISC
正点原子第41章。要使用AXI GPIO,就要在vivado工程中,添加相关的IP。然后dts会自动生成相关的AXi GPIO的设备树内容。
2024-10-09 14:25:17
431
原创 fmql之字符驱动设备(3)-并发与竞争
1. Linux是一个多任务系统。当多个任务共同操作同一段内存或同一个设备(共享资源)时,容易出现并发与竞争的情况。所以要处理对共享资源的并发访问。2. 并发与竞争出现的几个主要原因:多线程并发访问;抢占式并发访问;中断程序并发访问;SMP(多核)核间并发访问,etc。3. 在编写驱动的时候,就要注意避免并发核防止竞争访问。不然,会给后期埋下隐患。4. 什么是共享资源,哪些内容需要保护。如,全局变量,设备结构体,etc。要弄清楚需要保护的内容或数据。5. 几种处理并发和竞争的方法:原子操作;自旋锁。
2024-09-27 12:01:14
1061
原创 fmql之linux启动文件大小
想要从flash启动linux,但是flash同时也要存储数据,所以看看启动文件占多大内存。目的:flash放启动文件,,且自启动。,MIO配置为SD卡启动flash所需存储空间:BOOT.bin的物理大小。P.S 后面试了一下,如果是SD卡启动,可能是需要image.ub文件的。只有BOOT.bin和image-mini.ub和ubuntu系统的话,会卡在uboot启动,kernel不会启动。1. image.ub展开到DDR,占用DDR多少空间?2. 如何分配SD卡空间。
2024-09-26 16:46:50
611
原创 fmql之驱动程序编写(首次)
看了正点原子的zynq系列的Linux开发指南(pdf和视频均有),因此从最简单的程序开始。学习驱动程序编写之前,要先学习uboot,kernel等内容(操作系统):(第三期视频)如USB的wifi模块,就不只是网络驱动。可能的原因:没有交叉工具编译;前期环境配置没弄好(见正点原子第三期视频)进入petalinux安装目录:source setting.sh。比较难,且比较多的是第一种,字符驱动。KERN_DIR为kernel的目录。驱动程序开发:(第四期视频)因此,跟着视频一起来学习吧。
2024-09-20 10:03:48
458
原创 fmql之ubuntu添加dhcp服务
因为修改了buildroot配置后,没有输入命令“make busybox-dirclean”网口连接路由器,然后发现路由器分配了ip,但是板卡没有配置。上面dhcp都不能使能,不然就无法启动kernel。按照官方指示:【在文末】
2024-09-18 08:52:50
360
原创 ZD25Q512AYIGY读写测试
zd25q512芯片是2×256M,理解为两片256M。目前关注到的几个寄存器,都和Winbond的地址位一致。ZD25Q256只多了Software Die Select。只有在3字节读写(ADS=0)的情况下,才能根据地址进行低128Mb和高128Mb的读写(0xh - 0xff_ffffh,0x100_0000 - 0x1ff_ffff)(扩展的地址为bit24)。要写入扩展地址寄存器位时,必须先执行写使能(06H然后再发送C5H,写入扩展地址注册表数据字节来输入指令。
2024-09-11 15:30:00
843
原创 fmql之ubuntu移植
其中,format_emmc_ext4.txt对emmc的分区是512M(放上述文件)、512M、剩余内存(放ubuntu)。重启后默认进入kernel,也就是说,uboot下的setenv要每次都设置。教程:99_FMQL45_大黄蜂开发板跑ubuntu18.04.docx。因为没有emmc,所以把ubuntu放到SD卡中,从SD卡启动。分3个区:(参考format_emmc_ext4.txt)输入第二个命令后会自动启动ubuntu。目的:放到SD卡中启动ubuntu。可以在setenv之后输入命令。
2024-09-11 11:18:53
600
原创 fmql之模拟IIC调试(1)
尖峰后面的第一个SCL高电平为返回应答信号,所以红色框内的周期是在这之后的,即传输data——发现少一个周期,只写了7bit数据。虽然写的是IIC,但其实在system bd中并没有勾选IIC0、IIC1,而是根据IIC协议写了相关的函数(不是我写的)。发现,写位置前是正常的(尖峰位置),而写位置后的尖峰太靠后了,使data写入出现错误(目前这么理解。发现,每次写入数据(共3次),SDA都会有一个尖峰,目前认为它是应答信号。硬件配置(引脚,虚焊等),线路过长,速率配置/时序,主机复位,
2024-08-23 15:55:18
567
原创 fmql之linux入门-基本外设使用
1.修改设备树,切记勿修改fmsh-psoc.dtsi)/{// 100k Hzrtc@68 {//IDi2c-gpio的引脚要和原理图对上;rtc的compatible要和内核文件信息对上(厂商和芯片型号) (中间不能有空格)2.kernel启动信息中是否有i2c-gpio和rtc的相关驱动信息3.ubuntu启动后,输入命令,设置时间4.rtc芯片的compatible信息。
2024-08-23 15:54:25
990
原创 fmql之Linux移植-ubuntu启动
复旦微fmql的操作指南复旦微 FMQL Linux SDK实验(一)_procise生成的工程有用吗-优快云博客复旦微 FMQL Linux SDK实验(二)_复旦微fmql 社区-优快云博客ZYNQ-Linux开发之(五)Vivado工程搭建,设备树修改方法,复旦微电子fmql开发、vivado联合procise、IAR的linux系统开发-保姆级教程-非常详细_zynq linux-优快云博客国产之路:复旦微调试笔记3:环境配置_复旦微fpga开发环境-优快云博客。
2024-08-13 16:14:49
1219
原创 fmql程序移植注意事项
把zynq的程序移植到fmql,因为软件不同(vivado与Procise;SDK与IAR),库函数不同,所以在移植过程中遇到些坑。记录下来,以便后续回看。
2024-07-31 09:59:25
813
2
原创 v500大程序之以太网调试
但是大神也没用过fmql。其中0xc代表中断应答(0x2a:CPU_ID=0,INTR_ID=0x2a)明明fmsh_gic.h声明,ethernet_interface.h声明,ethernet_interface.c定义。程序是能进三四次中断的,然后进行一次g_rcv_cnt++ ---> g_rcv_cnt --,然后就进不去中断了。bsp中移除mmu_table.s(但是不删除文件),在main.c所在的文件夹内添加 mmu_table.s。(啊这,没想到最后还是---可能是---中断配置的问题。
2024-07-19 17:01:23
657
原创 fmql之PL串口中断调试
调完PS_UART后,来调PL_UART(UART16550)因为fmql没有PL的库函数和资源,所以均用zynq(从库函数到代码)P.S 一定要学习 思路!!!!!!
2024-07-18 15:54:17
362
原创 fmql之PS串口中断调试★
比较有趣的是,这是官方的中断函数,在fmsh_uart.c。但是某两行编译不通过(?(应该是uart0配置了uart1_irq,所以设断点没进去,但其实应该是进入中断函数了)用的模板,应该程序也没有错误。txRemain,同理,它下面那一行也要这么改。【奇怪的是,用自己写的IrqHandler,就进不去,接着就是修改中断服务函数,让它能够记录不同中断情况。了(主要是接收中断)。,但是能发送,接收不到,并且无法进入中断。好吧,是中断函数和uart_x没对上。用了好几个工程去测试,都是如此。
2024-07-10 14:56:34
949
原创 V500大程序阅读(8)- Lwip & SD & Timer & 数据处理
导入原来的Timer.c & Timer.h,但是函数内容作了修改(根据PeripheralTest中的ttc_example.c)但是后续如果要用SD卡去进行存储和取用的话,需要把example的函数分开写。现在所有的操作都写在一起了。代码移植过去,PHY ID、speed协商等都没问题。Timer的irq在配置完就会进入,并且只进入一次。把之前测试的模板导入,成功。
2024-07-08 11:50:05
361
原创 FPAG之静态时序分析与时钟约束(1)
看了一周PL端的大程序,甚是复杂。所以来学学时序方面的基础知识。不然都不知道时序约束怎么通过。参考内容:正点原子FPGA静态时序分析与时序约束_V2.2.pdf《Xilinx FPGA权威设计指南 ——Vivado 2014集成开发环境》
2024-06-07 16:58:47
1093
原创 fmql之CAN调试
报错:(没有如下宏定义所以SCU GIC是什么?(之后再学习)但是推测SGI_ID等价于INTC_DEVICE_ID ,CAN0_INT_ID等价于CAN_INTR_VEC_ID。修改xil_printf添加的头文件:删除的头文件:fmsh的头文件都没删。也没修改内容。添加的宏定义:因为gic的头文件内容差不多,所以zynq的头文件就没添加,用fmsh本来的,把函数名称修改成fmsh对应的(上面的宏定义)。
2024-05-31 17:13:40
1075
2
原创 zynq之CAN调试
比较详细的介绍:(包括CAN相关概念&代码解析)Xilinx-ZYNQ7000系列-学习笔记(26):CAN总线_zynq的can通信-优快云博客选择/**//**//**/波特率 baudrate = CAN_CLK / ((SYNCJUMPWIDTH + SECOND_TIMESEGMENT + FIRST_TIMESEGMENT ) * (PRESCALAR + 1))CAN_CLK在zynq IP配置界面设置。s32 Status;u32 Index;= NULL);
2024-05-30 16:02:33
1828
1
原创 zynq之UART
将UART 16550 IP中的sin和sout引脚导出,修改引脚名字为RS485_RXD和RS485_TXD;,输入连接UART 16550 IP的ip2intc_irpt,输出dout连zynq IP的irq。连接UART 16550的freeze,dcdn,dsrn与第二个constant IP;将AXI GPIO IP中引出的GPIO的引脚名字修改为RS485_DE。删除AXI UART 16550 IP的UART引脚。但是串口调试助手没有收到任何打印信息。Run Automation自动连线。
2024-05-29 15:12:28
762
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人