<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ddddfang的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ddddfang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ddddfang]]></copyright><item><title><![CDATA[python包管理]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/143625579</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/143625579</guid><author>ddddfang</author><pubDate>Fri, 08 Nov 2024 14:35:17 +0800</pubDate><description><![CDATA[mkvirtualenv -p /home/fang/Python-3.12.7/tmp_install/bin/python3.12 venv_py312  #so，下次注意了 就这么安装，和 virtualenvwrapper 配合，太方便了。不知为何 /usr/lib/python3.8/ 和/usr/lib/python3.6/下 find . -name *tkinter*.so 都可以找到对应的库，删掉系统里面的python3.12后，本地这个可以保留，万一还想用呢，，删除也方便。]]></description><category></category></item><item><title><![CDATA[vscode]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/142651410</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/142651410</guid><author>ddddfang</author><pubDate>Mon, 30 Sep 2024 10:34:10 +0800</pubDate><description><![CDATA[调试，可以先make编译好，然后点击 运行-》添加配置，弹出的编辑器里选择gdb。然后填写一下program和args字段（["arg1", "arg2"]），然后就可以添加断点后F5启动了。在调试控制台，可以 -exec    执行gdb原始命令。ubuntu下：ctrl + alt + -]]></description><category></category></item><item><title><![CDATA[linux下修改网卡MAC地址]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/136508028</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/136508028</guid><author>ddddfang</author><pubDate>Wed, 06 Mar 2024 15:36:16 +0800</pubDate><description><![CDATA[但如果你不想使用它，那么可以使用另一种方法在。接下来，使用以下命令设置新的。]]></description><category></category></item><item><title><![CDATA[valgrind]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/130264565</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/130264565</guid><author>ddddfang</author><pubDate>Thu, 20 Apr 2023 13:40:59 +0800</pubDate><description><![CDATA[-tool= 最常用的选项。--log-file= 将输出的信息写入到filename.PID的文件里，PID是运行程序的进行ID。--log-file-qualifier= 取得环境变量的值来做为输出信息的文件名。--db-command= 启动调试器的命令行选项[gdb -nw %f %p]--log-fd= 输出LOG到描述符文件 [2=stderr]--log-file-exactly= 输出LOG信息到 file。]]></description><category></category></item><item><title><![CDATA[orangePi3 lts]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/125840367</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/125840367</guid><author>ddddfang</author><pubDate>Mon, 18 Jul 2022 07:49:33 +0800</pubDate><description><![CDATA[到http//releases.ubuntu.com/21.04/ubuntu-21.04-desktop-amd64.iso（21.04还真不好找）下载，3.使用release的桌面版本，替换kernel+uboot的deb最后只能通过使用官方img里带的rootfs，替换编译得到的uboot和kernel。完成后去https//mirrors.tuna.tsinghua.edu.cn/help/ubuntu/替换对应版本的软件源。还不如18.04上编译的legacy。..................]]></description><category></category></item><item><title><![CDATA[ESP32]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/125590661</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/125590661</guid><author>ddddfang</author><pubDate>Sun, 03 Jul 2022 22:25:15 +0800</pubDate><description><![CDATA[在ubuntu16.04IDF开发环境参看 https://aithinker.blog.youkuaiyun.com/article/details/121565113sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
Reading package lists.]]></description><category></category></item><item><title><![CDATA[ubuntu16.04换源 & 包管理]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/124852354</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/124852354</guid><author>ddddfang</author><pubDate>Wed, 18 May 2022 22:08:30 +0800</pubDate><description><![CDATA[换了源，出现问题了，还回去，需要执行下面几句

sudo apt-get update
sudo apt-get -f install
sudo apt-get upgrade
]]></description><category></category></item><item><title><![CDATA[树莓派3b+学习linux内核]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/124381688</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/124381688</guid><author>ddddfang</author><pubDate>Sun, 24 Apr 2022 14:41:55 +0800</pubDate><description><![CDATA[Step 1

下载 2020-02-13-raspbian-buster.img（地址
）并使用rasp Imager将其烧录到sd卡。这个版本的系统貌似默认使用kernel7.img，不放心可以在/boot/config.txt中添加kernel=kernel7.img

Step2

安装必要的包


sudo apt-get update
sudo apt-get install bc build-essential git unzip
sudo apt-get install kernel-p..]]></description><category></category></item><item><title><![CDATA[debugfs]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/124333097</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/124333097</guid><author>ddddfang</author><pubDate>Thu, 21 Apr 2022 22:06:16 +0800</pubDate><description><![CDATA[在调试linux驱动的时候，可以用debugfs来调试，debugfs类似字符设备驱动一样，甚至更简单，不需要主设备号次设备号等等，只需要实现一个file_operations，然后通过debugfs_create_file就可以在debugfs中建立一个文件结点，就像字符设备驱动那样，只需要对这个文件结点进行open就可以进行read、write、ioctl，等等操作，这些操作对应到我们在驱动里为debugfs准备的file_operations。

让内核支持DEBUGFS，使能宏CONFIG_DEBU]]></description><category></category></item><item><title><![CDATA[arm汇编中的跳转指令]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/122939065</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/122939065</guid><author>ddddfang</author><pubDate>Tue, 15 Feb 2022 11:09:23 +0800</pubDate><description><![CDATA[原文链接 ：跟涛哥一起学嵌入式08：ARM跳转指令深度剖析 - 知乎 (zhihu.com)

在ARM中，常见的跳转指令有B、BL、MOV、LDR，不同的指令，它们的使用条件、使用场合是不同。

B指令


B指令是ARM中最基本的跳转指令，它的使用方法如下：


B label

上面语句表示跳转到label的标号处去执行。B跳转指令是ARM中最简单的指令，只是单纯的跳转，而且是相对跳转。它可以跳到以当前位置PC为基址，前后32MB的地址空间范围，所以B指令只是在临近的代码块、标号之间跳转。
B指令跳.]]></description><category></category></item><item><title><![CDATA[vs2017 Tips]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/122067943</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/122067943</guid><author>ddddfang</author><pubDate>Tue, 21 Dec 2021 16:39:22 +0800</pubDate><description><![CDATA[vs2017下使用 ctrl+, （ctrl+逗号）打开检索小窗口，可以实现快速跳转到项目管理的某个文件、跳转到项目中的某个symbol等功能，非常好用
]]></description><category></category></item><item><title><![CDATA[CAVLC]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/121296614</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/121296614</guid><author>ddddfang</author><pubDate>Fri, 12 Nov 2021 21:41:34 +0800</pubDate><description><![CDATA[在H.264标准中，CAVLC（Context-based Adaptive Variable Length Coding）被用于亮度和色度残差数据编码。在标准的码流结构中，CAVLC编码方式描述为ce(v)。如果在编码时采用CAVLC，那么尽管在DCT时是以8x8块为单位进行的，在进行CAVLC时也会强制采用4x4块为单位进行编码（请参考h.264语法结构分析中的redisual_luma部分）。在进行熵编码之前，需要把4x4块的矩阵中的元素按照一定顺序重新排列成大小为16的序列，这部分工作请参考h...]]></description><category></category></item><item><title><![CDATA[关于so文件]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/120758092</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/120758092</guid><author>ddddfang</author><pubDate>Thu, 14 Oct 2021 09:59:06 +0800</pubDate><description><![CDATA[ldd -r xxx.so可以查看这个so使用了哪些lib（so）以及是否找到
]]></description><category></category></item><item><title><![CDATA[qemu嵌入式环境]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/114754122</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/114754122</guid><author>ddddfang</author><pubDate>Sat, 13 Mar 2021 17:23:11 +0800</pubDate><description><![CDATA[00. 编译qemu

安装依赖，主要是交叉工具链，编译uboot、kernel时用（我ubuntu主机中有一个for arm-cortex-a64的交叉编译工具链aarch64, 有一个for arm-cortex-m的交叉编译工具链, 可以在docker中安装一个 for arm-cortex-a32 的交叉编译工具链 arm-linux-guneabi-gcc）


apt-get update
apt-get install vim bc build-essential gcc-arm-linu..]]></description><category></category></item><item><title><![CDATA[qemu构建嵌入式环境]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/112862116</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/112862116</guid><author>ddddfang</author><pubDate>Wed, 20 Jan 2021 13:38:29 +0800</pubDate><description><![CDATA[编译qemu


下载qemu源码(我下的是v2.8.0,原来是想下载v5.2.0,后来发现网络连接总是配置不好,v2.8.0 configure需要&gt;pyth2.6,且&lt;pyth3),然后


#不加 --target-list 则编译支持的所有平台, --enable-debug 允许gdb qemu
./configure --enable-kvm --enable-debug --prefix=/opt/qemu --target-list="arm-softmmu x86_64-sof]]></description><category></category></item><item><title><![CDATA[Linux虚拟网络设备之tun/tap]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/109725138</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/109725138</guid><author>ddddfang</author><pubDate>Mon, 16 Nov 2020 17:06:55 +0800</pubDate><description><![CDATA[在现在的云时代，到处都是虚拟机和容器，它们背后的网络管理都离不开虚拟网络设备，所以了解虚拟网络设备有利于我们更好的理解云时代的网络结构。从本篇开始，将介绍Linux下的虚拟网络设备。

虚拟设备和物理设备的区别

在Linux网络数据包的接收过程和数据包的发送过程这两篇文章中，介绍了数据包的收发流程，知道了Linux内核中有一个网络设备管理层，处于网络设备驱动和协议栈之间，负责衔接它们之间的数据交互。驱动不需要了解协议栈的细节，协议栈也不需要了解设备驱动的细节。

对于一个网络设备来说，就像一个管道（pip]]></description><category></category></item><item><title><![CDATA[route命令]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/109710082</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/109710082</guid><author>ddddfang</author><pubDate>Sun, 15 Nov 2020 21:22:26 +0800</pubDate><description><![CDATA[1）route delete：删除路由；
2）route print：打印路由的Destination；
3）route add：添加路由；
4）route change：更改现存路由

查看路由表
netstat -rn # 或者使用 route -n，一样的

内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.1.1 0.0.0.0 UG...]]></description><category></category></item><item><title><![CDATA[下载linux内核源码并编译替换到ubuntu中使用]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/109697497</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/109697497</guid><author>ddddfang</author><pubDate>Sat, 14 Nov 2020 22:05:38 +0800</pubDate><description><![CDATA[uname -a 查看自己的ubuntu使用的内核版本

去这里下载内核源码，https://www.kernel.org/pub/linux/kernel/。稳定起见选择和自己内核相近的版本
或者直接 sudo apt-get install linux-source-4.15.0 (这里选择版本的时候选择相近的版本) 将源码下载到 /usr/src/linux-source-x.x.x/
完成后解压缩源码包

安装配置内核的必要软件包
apt-get install libssl-dev libn...]]></description><category></category></item><item><title><![CDATA[使用qtcreator创建project 或 阅读代码]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/109552015</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/109552015</guid><author>ddddfang</author><pubDate>Sat, 07 Nov 2020 20:40:39 +0800</pubDate><description><![CDATA[基本使用

qtcreator 阅读一个已有的工程：

new file or project ---&gt; import project ---&gt; import existing project

选择项目根目录，并起一个名字 xxx 。qtcreator会在那个根目录下生成四个文件 均以xxx打头

xxx.config

xxx.creator

xxx.files

xxx.includes





qtcreator 新建一个plain c++工程

new file or pr...]]></description><category></category></item><item><title><![CDATA[gstreamer1.16插件笔记]]></title><link>https://blog.youkuaiyun.com/ddddfang/article/details/107636978</link><guid>https://blog.youkuaiyun.com/ddddfang/article/details/107636978</guid><author>ddddfang</author><pubDate>Tue, 28 Jul 2020 15:37:53 +0800</pubDate><description><![CDATA[gstreamer命令行，

basic tutorial(github my-demos)，

plugins tutorial(github my-demos)，

api手册 gst核心手册 file:///home/fang/gstreamer/gstreamer-1.16.2/docs/gst/html/libgstreamer.html ，base api 手册 file:///home/fang/gstreamer/gst-plugins-base-1.16.2/docs/libs/html.]]></description><category></category></item></channel></rss>