linux
雨之小
我真的很懒,懒得写简介了。
展开
-
linux下cpu多核运行程序以及运行时间统计
这个代码在测试单核运行的代码时,时间是对的,但是使用多核运行时,发现这个代码统计的时间是我实际手机计时的2倍,怀疑是该函数统计了本程序对所有cpu的占用时间,即双核的时间。代码中的线程属性设置cpu核心为2和3,进程以cpu核心0来运行,实际运行在核心2和3上。提供了更多的功能和更高的精度,是现代 C 语言编程中推荐的时间测量函数。因此,可得结论:在进程和线程都指定运行的cpu核心时,以线程为准。由于其较低的精度和对多线程支持的限制,在现代编程中使用较少。测试时间和手机测试的一致。原创 2024-08-30 19:11:44 · 884 阅读 · 2 评论 -
使用vmware,在ubuntu18.04中使用笔记本的摄像头
win10系统中,在左下的搜索栏,搜索“相机”,点击进入即可打开相机,并正常显示图像。注意:如果相机连接到了虚拟机,则不能显示正常。步骤5:重新打开相机工具,可以正常显示图像。步骤1:在windows中检查相机状态。按照上述操作之后在系统中可找到设备。按照以上步骤,等待虚拟机的自动启动。步骤2:在ubuntu中连接相机。使用ubuntu自带的茄子工具,但是显示没有发现设备!步骤3:使用工具打开相机。原创 2023-12-30 20:57:35 · 1723 阅读 · 0 评论 -
HI3559AV100下对emmc总线速率的调整
先前使用3559开发板时,一直没觉得emmc会是个问题,但是最近一个国产化的项目中3559配合的是一款国产128G的emmc,因为板上面积限制,走线有点限制,导致uboot启动emmc有时候会失败。原创 2023-11-25 11:01:40 · 1667 阅读 · 2 评论 -
HI3559A DMEB试玩
hi3559a dmeb的使用过程记录,以及一些问题的记录原创 2023-09-09 10:43:45 · 367 阅读 · 0 评论 -
M300使用心得
3)目前多个项目使用linux系统,无异常。除了视频编解码和AI能力没有使用,其他的外设功能基本都是有使用,QT做显示等完全可以胜任。2)提供的操作系统为linux4.4,也可以适配国产的翼辉SylixOS,但是不提供技术支持。1)CPU架构和主要IP为自主研发,晶圆生产在台积电。1)功耗确实很低,外设丰富,且内置ddr,设计简便。2)提供了SDK,使用简单,技术支持也很到位。原创 2023-06-14 11:03:26 · 161 阅读 · 0 评论 -
LINUX下看门狗的使用
基本原理:使能看门狗,并配置看门狗,周期性的给看门狗设备写入数据即为喂狗。原创 2022-12-06 10:29:01 · 2231 阅读 · 0 评论 -
UBUNTU右击文件夹无终端的解决方法
我们知道在ubuntu下 CTRL+ALT+T可以打开终端,但是这样打开的终端默认路径是“~”,即当前用户的家目录,使用pwd可以查看。这样使用非常不方便,具体操作方法如下:第一步:安装软件sudo apt-get install nautilus-open-terminal第二步:重新加载文件管理器nautilus -q第三部:验证完成以上两步后,文件夹中右键就会显示有open in terminal选项。如果还不行,可以重启一下虚拟机。...原创 2022-05-03 17:44:51 · 5184 阅读 · 0 评论 -
UDP传输大量数据的性能优化
在做一个UDP传输视频数据的项目时,数据码率波动在10Mbps~100Mbps,平均在60Mbps,遇到接收端存在丢包问题,通过下面的方法可以解决。步骤1、修改socket的缓冲区大小默认的socket缓冲区大小为164K,通过setsockopt使用SO_RCVBUF来设置接收缓冲区,通过setsockopt使用SO_SNDBUF来设置发送缓冲区,本项目我设置为1M(可以再调整)。步骤2、修改linux系统udp缓冲区大小通过rmem_max来设置系统中udp缓存的上限,sysctl -w原创 2022-03-26 15:26:05 · 9293 阅读 · 0 评论 -
zynqMP平台在vitis2020.1下烧录QSPI flash各种失败和错误的治疗方法
在zynqMP硬件平台上,使用vitis2020.1烧录QSPI时报各种的错误和失败,之前在zynq7000上没有遇到烧录问题,着实让人烦恼,经过各种验证和追查之后总结出了一套包治各种QSPI烧录异常的方法。烧录需要的文件:1)fsbl.elf,该文件是从2019.2版本开始启用,之前是不需要这个文件的。2) BOOT.BIN,该文件是含有fsbl、uboot、bit、kernel、rootfs等。方法和步骤:1)启动MO...原创 2022-01-26 12:05:59 · 8404 阅读 · 1 评论 -
UBUNTU18.04增加SWAP分区
petalinux编译时经常遇到卡死现象,可能是电脑内存不足导致的,可以增加swap分区空间来 解决。查看命令free -M扩容swap分区具体方法如下:sudo touch /largeswapfilesudo fallocate -l 10G /largeswapfilels -lh /largeswapfilesudo chmod 600 /largeswapfilels -lh /largeswapfilesudo mkswap /largeswapfil原创 2022-01-17 11:45:55 · 895 阅读 · 0 评论 -
君正M300编译器安装
安装环境:Ubuntu18.04安装命令:apt-get install gcc-mips-linux-gnu测试:mips-linux-gnu-gcc -dumpmachine,返回“mips-linux-gnu”表示正常。原创 2021-12-27 15:30:39 · 917 阅读 · 0 评论 -
petalinux2020.1 petalinux-build 出现qemu问题
问题:petalinux-build全局编译的时候出现error,开头是qemu,且报错Fetcher failure for URL: 'gitsm://github.com/…解决方法:在工程文件夹内找到……/components/yocto/layers/meta-xilinx/meta-xilinx-bsp/recipes-devtools/qemu 这个文件夹,打开“qemu-xilinx.inc”,把 REPO ?= “gitsm: //github.com/Xilinx/qe.原创 2021-12-22 11:17:40 · 1202 阅读 · 1 评论 -
linux mac到mac直连原理和方法
基本原理:伪装phy 操作的的返回值,以及为phy的属性填充等。一、uboot修改1)driver/net/zynq_gem.c static int phy_detection(struct udevice *dev) 这个函数中的两处 phyread(priv, priv->phyaddr, PHY_DETECT_REG, &phyreg); ...原创 2021-11-12 15:44:24 · 3916 阅读 · 0 评论 -
json-c-0.15编译过程记录
问题1:提示安装cmake ubuntu下安装:apt install cmake 版本号:cmake (2.8.12.2) 问题2:cmake ../json-c-0.15报错CMake Error at tests/CMakeLists.txt:42 (target_sources) 怀疑可能与cmake版本号有关,尝试安装新的cmake版本,因为ubuntu系统自动安装的不会是最新的。 后证实,确实是要更换cmake的版本。问题3:安装cmake...原创 2021-10-14 09:27:18 · 597 阅读 · 0 评论 -
嵌入式linux网页功能实现
采用json数据格式,实现cgi与ajax的数据交换,POST方式。操作过程网上一大堆,这里主要说一下,我自己调试遇到的问题。问题1: 参考之前完成的一个模板,网页无法正常应答;但是模板工作正常。 解决:在cgi代码中不要随意使用printf添加各种的调试信息,这个会影响网页那边的解析。 如果非要打印的话,可以把需要打印的消息内容保存成一个日志文件。问题2: 下载大于1M的文件时,下载报错,显示文件过大。 解决:需要更改...原创 2021-10-13 15:52:31 · 377 阅读 · 0 评论 -
zynq更换ps的输入时钟频率
一般使用的zynq的ps时钟为33.333333MHz,如下图:但有时候也会遇到其他频率的,如下图:虽然不知道为啥要换来换去,但是人家设计没毛病啊,官方要求只要在30M~60M之间都行,如下图:既然如此,就得修改吧。在uboot中,主要修改设备树有两个地方,cpu的修改完全是因为ps-clk被修改,因为锁相环是倍频再分频,不一定能达到33M的主频。修改完成后编译uboot,烧录再启动,发现串口全是乱码,把fsbl的打印打开,发现是正常的,所以肯定是uboot...原创 2021-07-20 22:33:33 · 3649 阅读 · 3 评论 -
uartlite 双工时发数错误
1、测试环境 跑linux;使用uartlite,波特率设置为230400;发送端按32字节,间隔20ms循环发送,pc接收; 接收端,pc发送按256字节,间隔20ms; 连续测试,pc接收1万包,32万字节。2、问题和现象 当双向工作时,pc接收到的数据有百分之2的误包率,错误方式很规则,都是第二字节和第一字节相同; 当pc不发送时,连续测试无丢包,无错字节。3、分析...原创 2021-06-29 22:16:00 · 519 阅读 · 0 评论 -
zynq-dr e0002000.usb: Unable to init USB phy, missing?
问题:zynq 7030板卡使用usb设备驱动时,报错如题。最终的定位:硬件问题。解决过程:usb驱动在之前的一个7020板卡上使用过时没问题的,除了fsbl要更改,再换掉PL代码就可以的。当时也不怀疑自己,只是由于硬件工程师很忙,所以自己先定位。查看各大佬和官方的论坛,搜集到一下方法:1)驱动中增加USB控制器的复位查看自己的最小系统,确实是reset管脚没有勾选,并硬件连接到PL一个比较随意的管脚上;在内核中修改代码增加管脚控制,结果是无效,依然报上述错误。附:增加复位的代码位置为/原创 2021-05-21 11:31:12 · 786 阅读 · 0 评论 -
RTP包识别
RTP特征 选用理由 备注 UDP协议 必须UDP协议 UDP端口号 rtp是偶数端口,rtcp端口比rtp端口号大1 不排除,乱使用端口号 UDP载荷长度 不小于12 RTP头 版本号(V) 始终为2 扩展位(X) 扩展位要是使能了长度会变大 配合udp包长 CC 跟在固定头后面CSRC识别符的数目,默认设为0 配合udp包长 PT 7bit,可取值有限,且同一RTP时,原创 2021-04-25 17:15:18 · 531 阅读 · 0 评论 -
嵌入式linux的ext4文件系统更新
一般的嵌入式linux桌面系统都比较大,所以会选择tf卡作为存储介质,它的容量大,在开发阶段使用也方便。但是在客户那边使用时,我们有时需要更新系统,这里有两种方案:1)文件系统双分区第一分区为fat系统,存放uboot、设备树和kernel;第二分区为ext4系统,存放文件系统;第三分区和第二分区相同。使用方法:在需要更新时,把需要更新的文件系统放入第三分区,并修改启动命令行从第三分区启动,重启后就可以从第三分区启动;下次更新时,和上边方法相同,再从第二分区启动。一般的启动命令会放在设备树原创 2021-04-02 13:11:14 · 1235 阅读 · 3 评论 -
在u-boot 中自定义命令
1.在 common 目录下,新建一个文件 cmd_hello.c,输入如下代码:#include<command.h>#include<common.h>static int do_hello(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]){printf (“hello world!\ \ n”);return 0;}U_BOOT_CMD(hello, 1, 0, do_hello," sho原创 2021-03-24 17:46:40 · 287 阅读 · 0 评论 -
RFC3550 RTP中英文整理
中文参考:http://blog.chinaunix.net/uid-7396260-id-2056682.html英文参考:https://datatracker.ietf.org/doc/rfc3550/?include_text=1其中在中文参考发现有一处翻译错误:在5.1章节中时间戳(timestamp) 32比特时间戳反映了RTP数据包中第一个字节的采样时间。时钟频率依赖于 负载数据格式,并在描述文件(profile)中进行描述。也可以通过RTP方法对负载格式动态描述。如果R原创 2021-03-20 16:27:02 · 266 阅读 · 0 评论 -
Debian apt-get install报错
详细报错内容为:Error: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.PackageKit was not provided by any .service files解决方法:查看根目录的权限:stat /,为700,修改为755 正常,命令为:chmod 755 /...原创 2021-03-11 12:01:14 · 989 阅读 · 0 评论 -
linux调试usbtouchsrceen记录
HI3536平台调试usbtouchsrceen记录usbtouchsrceen的板子是网上买的,商家称为免驱,后ubuntu虚拟机测试可以使用。总的来说没有要太多修改的地方。1、内核配置 USB Touchscreen Driver 在make menuconfig之后,通过Device Drivers——>Input device support——>Touchscreens——>USB Touchscreen Driver 然后选取需要的touchscreen类型,...原创 2020-11-23 15:24:39 · 979 阅读 · 3 评论 -
uartlite: probe of 42c30000.serial failed with error -22
uartlite: probe of 42c30000.serial failed with error -22启动报错:定位:修改:启动报错:使用zynq的uartlite时,之前一般使用2个或1个,现在使用4个时,启动报错如下:42c00000.serial: ttyUL0 at MMIO 0x42c00000 (irq = 165, base_baud = 0) is a uartlite42c10000.serial: ttyUL2 at MMIO 0x42c10000 (irq = 166原创 2020-11-04 14:02:42 · 4083 阅读 · 7 评论 -
ZYNQ UBOOT更换调试串口管脚的方法
ZYNQ UBOOT更换调试串口管脚的方法问题的产生修改过程验证问题的产生本来我一直只用的zynq平台的调试串口是在uart1的mio48和mio49上,后来接了一个项目是别人家的硬件,我们做软件。看原理图发现串口被改到了uart0的mio15和mio14上了,开始没注意直接修改内核的设备树,烧录完uboot.bin后系统无任何打印,使用示波器测量发现TX管脚为高电平,说明uboot也要管脚更改。修改过程查看原始的uboot设备树中关于uart1的管脚定义为:pinctrl_uart1_defau原创 2020-06-28 18:00:47 · 2038 阅读 · 0 评论 -
ZYNQ LINUX 软复位时卡死(reboot)
现象:在reboot时有时会系统不能启动成功,串口打印消息如下:Sent SIGTERM ttcpsvd: got signal 15, exitudpsvd: got signal 15, exitSent SIGKILL to all processesRequesting system rebootRemoving MTD device #6 (data) with use ...原创 2019-10-30 10:35:54 · 3962 阅读 · 1 评论