- 博客(49)
- 资源 (2)
- 收藏
- 关注
原创 Qemu中使用libbpf-bootstrap报错找不到‘/sys/kernel/tracing‘路径
由于系统找不到/sys/kernel/tracing 和 /sys/kernel/debug路径,检查了qemu模拟的aarch确实没有看到该debug文件系统的存在,一开始以为是内核编译的时候模块配置的问题,仔细认真检查,尝试开启DEBUG_FS相关的各种模块配置之后,还是同样的报错。仔细检查路径之后,看到报错的其实是在/sys/kernel/tracing/路径之下,所以就尝试将debugfs挂载到了上一级目录,执行竟然成功了。access函数来判定文件目录是否存在,编译之后,执行成功。
2025-01-12 16:26:14
682
原创 09-责任链模式-C语言实现
Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain until an object handles it.(使多个对象都有机会处理请求, 从而避免了请求的发送者和接受者之间的耦合关系。
2024-01-07 12:06:27
1216
原创 09-命令者模式-C语言实现
是一个高内聚的模式, 其定义为: Encapsulate a request as an object,thereby letting you parameterize clients with different requests,queue or log requests,and support undoable operations.(将一个请求封装成一个对象, 从而让你使用不同的请求把客户端参数化, 对请求排队或者记录请求日志, 可以提供命令的撤销和恢复功能。
2023-12-02 20:07:42
172
原创 08-中介者模式-C语言实现
explicitly,and it lets you vary their interaction independently.(用一个中介对象封装一系列的对象交互, 中介者使各对象不需要显示地相互作用, 从而使其耦合松散, 而且可以独立地改变它们之间的交互。
2023-12-02 14:22:40
473
原创 07-原型模式-C语言实现
对象的构造函数是私有的,不能直接调用,但又需要复制该对象。可以动态克隆对象,减少了对象创建过程中的时间和资源消耗。对象的创建方式比较固定,但是需要某些属性进行个性化设置。可以隐藏对象创建细节,使用户无需关心对象的创建方式。对象的创建过程比较复杂或耗时,需要缩短对象创建时间。,包括引用类型的属性,否则会出现浅拷贝导致的问题。在上面的示例代码中,首先定义了原型接口。,然后通过克隆函数创建了一个新的对象。,它实现了原型接口中的克隆函数。函数中,创建了一个具体原型对象。,最后输出了新对象的属性。
2023-12-02 13:51:26
794
原创 06-代理模式-C语言实现
它包含了一个指向具体主题对象的引用,并实现了与具体主题相同的接口函数。可以实现延迟加载,当真正需要时才创建或访问目标对象,提高系统性能。可以实现对目标对象的访问控制,例如验证权限、监控访问等。可能会降低系统的性能,特别是在需要频繁访问目标对象时。可以隐藏目标对象的具体实现细节,保护目标对象的安全。需要对目标对象进行扩展,例如增加额外的操作。需要对目标对象进行保护,隐藏其具体实现细节。在上面的示例代码中,首先定义了抽象主题接口。增加了系统复杂性,引入了额外的代理对象。,它实现了抽象主题接口中的函数。
2023-11-26 18:09:31
457
原创 05-建造者模式-C语言实现
建造者模式将产品的构建过程与产品的表示分离,使得构建过程可以独立于产品而变化。通过使用建造者模式,可以更加灵活地构建复杂对象,并且可以复用相同的构建过程来创建不同的产品。具体建造者类通过实现不同的构建方法来构建产品的不同部分,并提供获取最终产品的函数。需要创建复杂的对象,而且对象的构建过程是稳定的,但是具体的构建步骤可能会有所差异。如果产品的组成部分发生变化,可能需要修改建造者类的代码,影响系统的稳定性。需要控制对象的创建过程,并且希望隐藏产品的创建细节,只暴露出产品的接口。函数中,创建了具体建造者对象。
2023-11-26 16:39:55
343
原创 04-模板方法模式-C语言实现
模板方法模式将算法的骨架和具体步骤的实现进行了解耦,通过在抽象基类中定义模板方法,并使用函数指针回调具体实现类的函数来实现多态性,可以灵活地扩展和定制算法的具体步骤。,它接收一个抽象基类对象作为参数,并依次调用对象的三个函数指针,完成算法的骨架部分。,其中包含了三个函数指针,对应模板方法中的三个步骤。然后定义了具体实现类。函数中创建了两个不同的具体实现类的对象,并调用模板方法进行测试。在上面的示例代码中,首先定义了一个抽象基类。,它们分别实现了抽象基类中的三个步骤。,以及另一个具体实现类。
2023-11-26 16:12:32
341
原创 01-单例模式-支持并发的C语言实现
需要注意的是,使用单例模式时应该慎重考虑,合理评估是否真正需要全局唯一实例。滥用单例模式可能会导致代码复杂性增加,并且可能隐藏了类之间的依赖关系。单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供全局访问点以获取该实例。
2023-11-26 16:05:50
375
原创 03-抽象工厂模式-C语言实现
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一个接口或抽象类,用于创建相关或依赖对象的家族,而不需要指定具体的类。抽象工厂模式通过封装一组相关的产品对象的创建逻辑,使得客户端可以通过统一的接口来创建这些产品对象。需要注意的是,抽象工厂模式适合处理产品族的创建,而不适合处理单个产品的创建。另外,抽象工厂模式在系统中增加了抽象性,如果系统规模较小或者产品结构简单,可能会显得过度设计,此时可以考虑使用简单工厂模式。
2023-11-26 15:54:19
231
原创 02-工厂模式-C语言实现
简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它提供了一个统一的工厂类,通过传入不同的参数来创建不同的产品对象。简单工厂模式将对象的创建逻辑封装在工厂类中,客户端只需通过工厂类来获取所需的产品对象,而无需关心具体的创建过程。需要注意的是,简单工厂模式并不是一个严格的设计模式,它更像是一种编程习惯或者一种简化对象创建的方法。在具体项目中,根据实际需求和复杂度,可以选择使用其他更灵活和可扩展的创建型设计模式,如工厂方法模式或抽象工厂模式。,它包含一个用于创建产品的函数。
2023-11-26 15:22:35
121
原创 低成本FPV制作记录(空心杯+2.5寸FPV)
前言:入FPV的坑,买的五寸太大,飞起来就是个移动的血滴子,有点害怕,所以想做个低成本、有保护圈的FPV练手。空心杯材料:7.4V 2S 8520空心杯电机https://item.taobao.com/item.htm?spm=a1z09.2.0.0.52c72e8dvhYEuv&id=601213996267&_u=l22efle6a0c5空心杯机架两块530mA电池(咸鱼)https://2.taobao.com/item.htm?id=6227..
2021-04-21 22:44:38
3862
3
原创 Ubuntu18.04 配置vim自动补齐傻瓜操作
源自:https://blog.youkuaiyun.com/qq_41250354/article/details/90513598git clonehttps://github.com/chxuan/vimplus.git~/.vimpluscd ~/.vimplus./install.sh安装git后,都不需要安装vim,直接执行。中间要选一下支持Python2还是3就好了。效果图...
2020-02-18 17:50:49
2518
4
原创 Quartus18.0联合Modelsim10.5b仿真 ROM中读取数据为0的原因
联合仿真时认真检查了代码,没有发现任何错误,但是ROM输出数据一直为0,百思不得其解。原因:软件自身BUG。在例化IP核时,浏览文件后自动会保存路径如下:但是这样的路径如果使用Modlesim-Altera联合仿真时会发现ROM中数据全为0,ROM没有被初始化。而网上好多帖子都是说Modelsim-altera无法是被mif文件,只能用hex,还需要一顿操作将hex件转化成mo...
2019-11-25 17:10:24
2102
原创 FPGA 与Beaglebone的SPI通信
经过几天对linux 4.14内核源码中的spidev_test.c 、spidev.c的研究,初步实现FPGA 与BeagleBone的SPI通信。 BeagleBone端指令: ./spidev_test -D /dev/spidev2.0 -H -o result.txt -S4096 -I1 -v -b 16注:注意这个-符号,word会将其更改./spidev...
2019-06-27 21:00:54
806
1
原创 BBB-eclipse-gdbserver环境搭建
背景:由于要在BeagleBone里面运行用户程序,在BeagleBone里面使用终端开发又觉得不方便,所以就采用BBB+eclipse+gdbserver的方法进行测试。也为内核驱动开发做一下铺垫。参考博客,致谢博主:BBB学习(八):操作BBB普通IO口https://blog.youkuaiyun.com/b5w2p0/article/details/79211043BBB学习(十 四 ...
2019-06-27 20:53:31
490
原创 Beagleboneblack linux4.14 使用SPI
BBB中设备树的加载: Cape分为两种,使用eeprom(电可擦可编程只读存储器)和不使用eeprom。扩展板带有eeprom:插上后板子上电就能用,这是因为位于0x54-0x57地址的eeprom告诉了系统启动时该对哪几个overlay进行重载,从而开机后系统就识别出了硬件。扩展板不带eeprom:通过修改uEnv.txt,让系统开机后就加载对应的dtbo文件,同样达到了...
2019-06-23 10:38:47
1593
原创 DTC编译器 -@ 报错,plugin 报错
sudoapt-getinstall device-tree-compiler安装的编译器不好用,好多网上看到的命令报错。解决方案:wget -c https://raw.githubusercontent.com/RobertCNelson/tools/master/pkgs/dtc.shchmod +x dtc.shsudo ./dtc.sh...
2019-06-21 21:35:32
786
原创 minicom上传u-boot-spl.bin 和uboot.img文件启动uboot
ROM-Code如何从串口获取bootloader? 对于BBB板子来说,当没有按住boot按键时,启动顺序是MMC1、MMC0、UART0、USB0,而按住boot按键时启动顺序为SPI0、MMC0、USB0、UART0。由于板子的MMC1已经接有eMMC,所以要想让ROM-Code从串口启动,那么断电时,拔掉SD卡,然后按住boot按键,再给板子上电,如果连接上了串口调试线,此时PC机...
2019-06-19 21:25:30
1133
原创 安装nfs服务,实现远程挂载文件系统
服务端(PC Ubuntu16.04) 安装nfs服务sudo apt-get install nfs-kernel-server修改配置文件sudo gedit /etc/exports主要添加共享的文件目录,添加一句:/home/ws/nfs-share *(rw,sync,no_root_squash)表示共享/home/ws/nfs-share目录,*表...
2019-06-19 21:23:42
1748
原创 beaglebone安装TFTP服务
PC端配置 安装依赖软件: sudo apt-get install tftp-hpa tftpd-hpasudo apt-get install xinetd 配置相关服务文件。进入根目录下的etc文件夹(cd /etc/),首先看目录中有没有一个xinetd.conf文件,如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则修改,内容如下: ...
2019-06-19 21:19:34
432
原创 Beaglebone 中 U-Boot 的启动过程
简述:一般的嵌入式linux系统从SD卡或eMMC启动的过程都是上电时从硬件固化的ROM中读取数据,引导加载MLO到RAM中运行,进一步将uboot.img引导加载到DDR中运行。之后由uboot来引导内核镜像、设备树以及驱动模块,最后内核来引导加载根文件系统,完成整个系统的加载。 为了方便的调试系统,也有从串口获取MLO和u-boot.img文件,随后uboot启动完成终端输入命令,通过...
2019-06-19 21:13:43
1337
1
原创 BeagleboneBlack制作最新SD启动卡
https://www.digikey.com/eewiki/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-capemgr:v4.1.x+ 下载交叉编译链: 交叉编译链的版本一定要高于他要编译的源码的版本,应该可以说新一点的好。~/:wget -c https://releases.linaro.org/compone...
2019-06-18 22:38:56
2159
1
原创 APK反编译记录
方案一:dex2jar-2.0 + jd-gui-windows-1.4.3 + apktool_2.4.0.jar编译出来的有些函数只有函数名,有部分函数体没有编译出来方案二:enjarify-master + jd-gui-windows-1.4.3 + apktool_2.4.0.jar将apk包放入enjarify-master的文件夹,修改enjarify.bat: ...
2019-05-17 19:36:11
314
原创 Android Studio 3.0 google() jcenter()的库无法下载butterknife无法更新
在网上找了份源码,下载回来以后打开工程全是全是问题,都是一些版本的问题,其中最恶心的就是这些依赖库都没法连接,包括google() jcenter()等国外的库。一开始尝试使用阿里的托管库,多次尝试,并没用,最后找到了这个方法,分享给大家。贴上整个project的bulild.gradle文件:// Top-level build file where you can add co...
2019-05-16 02:19:26
1968
原创 ADI公司的元器件AD封装
导言:绘制电路板最头疼的就是找一下元器件的封装库,自己画又觉得不对,最近处理的一个电路板用到的大部分元器件都是ADI公司的,在网上找的别人整理的ADI封装库都没有找到AD9226芯片,要么很旧,要么不齐,最后使用如下方法解决了这个问题。其实ADI公司有提供元器件的封装,只不过需要一些转换才能使用,但能保证官网上能搜到的都有,在ADI官网的设计资源à封装、质量、原理图符号和尺寸à原理图符号和PC...
2019-05-14 20:28:57
7223
1
转载 FPGA中电源管脚在同一个BANK为何需要多个引脚?
在此链接找到答案:http://xilinx.eetop.cn/viewthread-2281981、一个bank内所有的VCCIO要连在一起,即使这个bank没有使用;2、一个back内所有的VCCIO必须相同,不能够使用2种VCCIO标准;3、一个bank不需要VCCIO,也可以把VCCIO连接到外部电压上;4、一个bank内使用多个电源管脚是为了均衡供电,避免一个管脚电流...
2019-05-13 15:48:33
3602
2
原创 endnote中文格式参考文献标注
安装endnote,解压完成傻瓜安装,确定到底,如果遇见这个,请关闭word,点击Retry继续安装。安装完成后可以发现word中出现如下:如果没有出现上述界面,请从word设置管理中打开:如果也没看到开发工具,请从下面选项中打开:重启word,就应该可以看到endnote插件了,启动endnote如图所示。插入参考文献:在百度学术或者知网或者其他渠道,可以到处end...
2019-03-01 16:11:24
24339
2
原创 Medelsim仿真双极性正弦波
参考:https://www.jianshu.com/p/beab73eb8f2f https://www.cnblogs.com/xiaomeige/p/8846786.html背景:由于AD9226模块采集回来的数据以二进制补码的形式输出,总的有12位,最高位为符号位,11位为数据位。n位有符号整数的表示范围是,所以总的数据范围是。所以正弦波幅值不能超过2047。在傅...
2019-03-01 13:51:15
1199
翻译 纳兰词
如梦令正是辘轳金井。满砌落花红冷。蓦地一相逢,心事眼波难定。谁省。谁省。从此簟纹灯影。 如梦令万丈穹庐人醉。星影摇摇欲坠。归梦隔狼河,又被河声搅碎。还睡。还睡。解道醒来无味 浣溪沙残雪凝辉冷画屏。落梅横笛已三更。更无人处月胧明。我是人间惆怅客。知君何事泪纵横。断肠声里忆平生。 浣溪沙谁...
2019-01-28 21:35:12
545
1
转载 示波器表笔衰减档×1 ×10
示波器型号:OWON EDS112CV来自:http://www.elecfans.com/group/answer/index/id/320.html问题:示波器探头上的×10是何意思?有何用途和注意事项? 一般的示波器探头(类似于万用表的表笔)上,有一个×1档和×10档选择的小开关。当选择×1档时,信号是没经衰减进入示波器的。而选择×10档时,信号是经过衰减到1/10再到...
2019-01-24 11:44:37
6882
原创 Beaglebone移植DDS模块驱动(AD9833)
Data:2019/1/23 author:wangsong需求:要求能有产生一路1MHZ以上的正弦激励信号,预留外接时钟接口,频率、幅值可调。方案:1、PWM波转模拟量(PAC =PWM to Analog Convertor)是一种PWM信号转模拟信号的专用芯片,模块最大频率只够200KHZ。(否决)2、外接DDS模块,由beaglebone控制DDS模块,从而产生不...
2019-01-23 16:05:58
2141
原创 Beagleboneblack 中DDS模块驱动源码(AD9833)
参考博客:基于OMAPL138的Linux字符驱动_GPIO驱动AD9833(二)之cdev与read、writehttps://blog.youkuaiyun.com/u014281970/article/details/82145664/*ad9833.c*//* * AD9833 of ADI driver code for Beagleboneblack debian9.5 kern...
2019-01-21 20:12:48
1200
转载 beaglebone内核升级(微雪官方)
0.使用的编译环境为64位Ubuntu。安装相关工具:apt-get updateapt-get install git ccache lzop1.通过以命令获取内核源码:git clone https://github.com/beagleboard/linux.git这个过程可能需要1~2小时。主要取决网速和PC性能。 2.进入linux目录,执行j...
2019-01-21 12:59:10
1075
1
原创 Beagboneblack 中内核升级(替换)
Beaglebone中原来的镜像来自于beaglebone官网:http://beagleboard.org/latest-images内核版本是 4.14.71-ti-r80。由于需要自己编译驱动模块进行加载测试,在该内核版本上测试报错,百度上有人说是编译用的内核版本与板子上正在运行的版本不一致,或者config或者交叉编译链不一致导致。然后由于找不到与此完全相同的源码,也不知用的什...
2019-01-21 12:55:09
1077
原创 TI SDK制作一个beaglebone使用的SD卡
设备:Ubuntu16.04 16G SD卡 首先需要安装一个AM335x的SDK,都是在PC端安装,下载地址: http://software-dl.ti.com/processor-sdk-linux/esd/AM335X/latest/index_FDS.html SDK的安装文件,下载到Ubuntu,更改文件权限,./执行安装,然后就是一路图形化界面安装。安装路径...
2019-01-21 10:30:33
1729
6
原创 BeagleBone Black 上LED交互
LED0: USR0闪烁,表明BeagleBone Black是运行的; LED1: USR1闪烁,表明Micro-SD卡正在使用; LED2: USR2闪烁,表明CPU的活跃程度; LED3: USR3闪烁,表明eMMC运行。 BeagleBoneBlack的启动方式:在不插SD卡,如果emmc中有镜像,则是从emmc中启动。如果插上SD卡,emmc中也有...
2019-01-14 10:06:28
539
B样条反求控制点绘制曲线
2019-01-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人