自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

原创 fmql之Linux WDT

正点原子第52章。

2025-03-05 15:09:16 812

原创 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之Linux flash

flash芯片:w25q256。

2025-01-20 09:55:24 385

原创 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以太网

正点原子第57章。

2024-10-29 16:52:58 1277 1

原创 fmql之Linux flash读写

ubuntu在板卡启动后,会占用部分flash的内存。目前用的是256Mb的flash,型号是w25q256。ubuntu系统和启动文件(BOOT.bin等)都放在SD卡。前者放在SD卡的第三个分区,后者放在第一个分区。现在要进行flash和SD卡的读写测试。【代码贴到最后了】

2024-10-29 14:58:16 1065

原创 fmql之Linux RTC

模拟i2c,连接rtc芯片。

2024-10-24 14:23:58 429

原创 fmql之Linux中I2C总线框架

正点原子第44章。

2024-10-24 11:29:11 560

原创 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 Input子系统

正点原子第43章。

2024-10-09 17:25:53 460

原创 fmql之Linux下AXI GPIO、MISC

正点原子第41章。要使用AXI GPIO,就要在vivado工程中,添加相关的IP。然后dts会自动生成相关的AXi GPIO的设备树内容。

2024-10-09 14:25:17 431

原创 fmql之Linux设备驱动框架

正点原子第39章---LED驱动框架。

2024-10-09 08:58:29 378

原创 fmql之Linux异步通知

正点原子第35章。Linux下的异步通知_linux异步通知-优快云博客

2024-09-30 11:12:55 358

原创 fmql之Linux阻塞和非阻塞IO

继续学习正点原子吧。

2024-09-29 18:02:02 219

原创 fmql之Linux中断

tasklet。

2024-09-29 14:53:45 321

原创 fmql之Linux内核定时器

内容依然来自于正点原子。

2024-09-28 17:52:42 441

原创 fmql之字符驱动设备(3)-并发与竞争

1. Linux是一个多任务系统。当多个任务共同操作同一段内存或同一个设备(共享资源)时,容易出现并发与竞争的情况。所以要处理对共享资源的并发访问。2. 并发与竞争出现的几个主要原因:多线程并发访问;抢占式并发访问;中断程序并发访问;SMP(多核)核间并发访问,etc。3. 在编写驱动的时候,就要注意避免并发核防止竞争访问。不然,会给后期埋下隐患。4. 什么是共享资源,哪些内容需要保护。如,全局变量,设备结构体,etc。要弄清楚需要保护的内容或数据。5. 几种处理并发和竞争的方法:原子操作;自旋锁。

2024-09-27 12:01:14 1061

原创 fmql之字符驱动设备(2)-设备树

例行的点灯来喽。之前是寄存器读写,现在要学习通过设备树点灯。

2024-09-26 16:59:33 984

原创 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之字符驱动设备(1)-寄存器操作

上一篇文章,记录了模块入口和出口函数的编写。这一篇要继续编写字符驱动程序了。

2024-09-23 15:06:20 1056

原创 fmql之驱动程序编写(首次)

看了正点原子的zynq系列的Linux开发指南(pdf和视频均有),因此从最简单的程序开始。学习驱动程序编写之前,要先学习uboot,kernel等内容(操作系统):(第三期视频)如USB的wifi模块,就不只是网络驱动。可能的原因:没有交叉工具编译;前期环境配置没弄好(见正点原子第三期视频)进入petalinux安装目录:source setting.sh。比较难,且比较多的是第一种,字符驱动。KERN_DIR为kernel的目录。驱动程序开发:(第四期视频)因此,跟着视频一起来学习吧。

2024-09-20 10:03:48 458

原创 fmql之ubuntu联网

需求:fmql搭载linux,并且可以远程访问。

2024-09-18 08:54:31 357

原创 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关注的人

提示
确定要删除当前文章?
取消 删除