fmql之模拟IIC调试(2) 【注】linux下,rtc的SCL频率为约70kHz,裸跑下,设置的频率为约60kHz。这样就确保所有的数据都成功写入(虽然会有多次重复写入同一数据)基于上一篇模拟iic调试rtc的文章,找到了可行的方法。这篇主要是代码修改部分的记录。新代码写——所有的数据都写一遍。原代码写——年、日、时、秒。
fmql编译过程记录 - 裸跑&linux PeripheralTest工程:各个外设的简单测试。Lwip工程:tcp / udp的简单通信。bit文件为vivado生成的bit文件。连接J-LINK,给开发板上电。打开Procise和SDK。切换到自己的工程,debug。FSBL工程:硬件初始化。
linux之多线程 和uart_rev函数的编写有关:(猜测)FD_ZERO、FD_SET、select、tcflush函数的使用影响进程的时间。Makefile文件,用来生成驱动程序 .ko 文件(也可修改Makefile,生成app)修改uartps.c 的代码,创建2个线程。测试添加线程的外设(已测试uart、tcp)tcp接收字符串数据部分还需要修改。了解linux下gpio相关的文件。petalinux安装目录下;上图:按照正点原子教程学的。目前写了代码,但是不成功。SDK安装包目录下。
fmql之Linux flash读写 ubuntu在板卡启动后,会占用部分flash的内存。目前用的是256Mb的flash,型号是w25q256。ubuntu系统和启动文件(BOOT.bin等)都放在SD卡。前者放在SD卡的第三个分区,后者放在第一个分区。现在要进行flash和SD卡的读写测试。【代码贴到最后了】
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。
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。
fmql之字符驱动设备(3)-并发与竞争 1. Linux是一个多任务系统。当多个任务共同操作同一段内存或同一个设备(共享资源)时,容易出现并发与竞争的情况。所以要处理对共享资源的并发访问。2. 并发与竞争出现的几个主要原因:多线程并发访问;抢占式并发访问;中断程序并发访问;SMP(多核)核间并发访问,etc。3. 在编写驱动的时候,就要注意避免并发核防止竞争访问。不然,会给后期埋下隐患。4. 什么是共享资源,哪些内容需要保护。如,全局变量,设备结构体,etc。要弄清楚需要保护的内容或数据。5. 几种处理并发和竞争的方法:原子操作;自旋锁。
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卡空间。