<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[BHJ1119的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/BHJ1119</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; BHJ1119]]></copyright><item><title><![CDATA[AM3358时钟树遍历与PRU时钟源选择和配置]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/135448476</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/135448476</guid><author>BHJ1119</author><pubDate>Mon, 08 Jan 2024 08:38:36 +0800</pubDate><description><![CDATA[AM3358时钟树遍历与时钟源选择和配置]]></description><category></category></item><item><title><![CDATA[《F2FS: A New File System for Flash Storage》中文翻译]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/135424869</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/135424869</guid><author>BHJ1119</author><pubDate>Sun, 07 Jan 2024 00:32:32 +0800</pubDate><description><![CDATA[《F2FS: A New File System for Flash Storage》中文翻译]]></description><category></category></item><item><title><![CDATA[求一个整数的二进制表示中bit1的总数（C语言实现）]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/121456781</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/121456781</guid><author>BHJ1119</author><pubDate>Sun, 21 Nov 2021 20:16:26 +0800</pubDate><description><![CDATA[求一个整数的二进制表示中bit1的总数（C语言实现）]]></description><category></category></item><item><title><![CDATA[以太网芯片ar8031调试总结]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/103929699</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/103929699</guid><author>BHJ1119</author><pubDate>Fri, 10 Jan 2020 19:43:52 +0800</pubDate><description><![CDATA[主芯片：TI公司的am3352

以太网PHY芯片：ATHEROS公司的ar8031

    以前没有调试过以太网，多网络协议栈了解也不够深入。因此调试以太网相对吃力。在此做一个回顾总结，以便日后复盘，学而时习之。

    首先，说一下心得体会。对新知识或新事物从陌生到了解，首先，心理上要经历从排斥到接受的过程，即，建立一个感性的认识。在此基础上才能进一步建立理性认识，学习并掌...]]></description><category></category></item><item><title><![CDATA[国内源下载linux内核源码，神速！]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/103702954</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/103702954</guid><author>BHJ1119</author><pubDate>Wed, 25 Dec 2019 17:29:15 +0800</pubDate><description><![CDATA[linux内核源码下载速度慢？试试国内源：

http://mirror.bjtu.edu.cn/kernel/linux/kernel/
]]></description><category></category></item><item><title><![CDATA[以太网自动协商原理]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/103630429</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/103630429</guid><author>BHJ1119</author><pubDate>Fri, 20 Dec 2019 12:11:26 +0800</pubDate><description><![CDATA[转载：http://www.360doc.com/content/14/0624/14/1756315_389355230.shtml

自协商基本原理

　　自动协商模式是端口根据另一端设备的连接速度和双工模式，自动把它的速度调节到最高的公共水平，即线路两端能具有的最快速度和双工模式。

　　自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端，并接受对方可能传递过来的相...]]></description><category></category></item><item><title><![CDATA[linux环境下，手动制作嵌入式设备sd启动卡]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/103630368</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/103630368</guid><author>BHJ1119</author><pubDate>Fri, 20 Dec 2019 12:01:42 +0800</pubDate><description><![CDATA[一、卸载sdb卡

bhj@ubuntu:~$ sudo umount /dev/sdb1
bhj@ubuntu:~$ sudo umount /dev/sdb2
bhj@ubuntu:~$

二、分区
bhj@ubuntu:~$ sudo fdisk /dev/sdb

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in m...]]></description><category></category></item><item><title><![CDATA[socket编程errno大全]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/101510018</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/101510018</guid><author>BHJ1119</author><pubDate>Fri, 27 Sep 2019 08:49:18 +0800</pubDate><description><![CDATA[0:Success

1:Operation notpermitted

2:No such fileor directory

3:No suchprocess

4:Interruptedsystem call

5:Input/outputerror

6:No such deviceor address

7:Argument listtoo long

8:Exec formaterro...]]></description><category></category></item><item><title><![CDATA[SRAM、DRAM、SDRAM、DDR　NAND Flas、 Nor Flash是什么]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/99574783</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/99574783</guid><author>BHJ1119</author><pubDate>Wed, 14 Aug 2019 15:49:50 +0800</pubDate><description><![CDATA[所有使用者对“存储器”这个名词可是一点都不陌生，因为所有的电子产品都必须用到存储器，且通常用到不只一种存储器。不过对于存储器种类、规格与形式，很多人容易搞混。比如，最近价格贵到炸的 NAND Flash，产业新闻里常常提到的DRAM，还有SRAM、SDRAM、DDR 3、DDR 4、NOR Flash … 这些又是什么？

先来一段百度百科。

存储器是用来存储程序和数据的部件，对于计算机来说，有...]]></description><category></category></item><item><title><![CDATA[am335x通过串口烧写u-boot]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/99559469</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/99559469</guid><author>BHJ1119</author><pubDate>Wed, 14 Aug 2019 13:24:54 +0800</pubDate><description><![CDATA[通过串口将u-boot-spl.bin 和u-boot.img 烧写到DRAM后，u-boot自动运行，再通过u-boot提供的网卡驱动和tftp服务通过网口将MLO、u-boot.img等文件烧写到nand flash中。
注意：系统在SD卡启动和nand flash启动的时候烧写的是MLO和u-boot.img ，而nor flash 和ddr启动的时候烧写的是u-boot-spl.bin和u...]]></description><category></category></item><item><title><![CDATA[OSI七层协议大白话解读]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/96428929</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/96428929</guid><author>BHJ1119</author><pubDate>Thu, 18 Jul 2019 13:23:22 +0800</pubDate><description><![CDATA[互联网的本质就是一系列的网络协议，这个协议就叫OSI协议（一系列协议），按照功能不同，分工不同，人为的分层七层。实际上这个七层是不存在的。没有这七层的概念，只是人为的划分而已。区分出来的目的只是让你明白哪一层是干什么用的。

每一层都运行不同的协议。协议是干什么的，协议就是标准。

实际上还有人把它划成五层、四层。

七层划分为：应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

五层...]]></description><category></category></item><item><title><![CDATA[ARM交叉编译工具链]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/96266051</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/96266051</guid><author>BHJ1119</author><pubDate>Wed, 17 Jul 2019 08:09:41 +0800</pubDate><description><![CDATA[转载自：https://www.veryarm.com/cross-tools

为什么要用交叉编译器？

交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序，比如在PC平台（X86 CPU）上编译出能运行在以ARM为内核的CPU平台上的程序，编译得到的程序在X86 CPU平台上是不能运行的，必须放到ARM CPU平台上才能运行，虽然两个平台用的都是Linux系统。

...]]></description><category></category></item><item><title><![CDATA[NAT(地址转换技术)详解]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/88312891</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/88312891</guid><author>BHJ1119</author><pubDate>Thu, 07 Mar 2019 16:44:57 +0800</pubDate><description><![CDATA[目录

 NAT产生背景
 ip地址基础知识
 NAT技术的工作原理和特点
 静态NAT
 动态NAT
 NAT重载（经常应用到实际中）
 NAT技术的优缺点
 优点
 缺点
 NAT穿越技术
 应用层网关（ALG）
 ALG的实际应用
 NAT技术的未来
 ...]]></description><category></category></item><item><title><![CDATA[linux下动态库与静态库]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/88219896</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/88219896</guid><author>BHJ1119</author><pubDate>Wed, 06 Mar 2019 10:03:01 +0800</pubDate><description><![CDATA[1、生成静态库 生成静态库使用ar工具，其实ar是archive的意思


$ar cqs libhello.a hello.o

2、生成动态库 用gcc来完成，由于可能存在多个版本，因此通常指定版本号：


$gcc -shared -o libhello.so.1.0 hello.o

3、库文件是如何命名的，有没有什么规范： 


在 linux 下，库文件一般放在/usr/lib和/li...]]></description><category></category></item><item><title><![CDATA[音频传输之Jitter Buffer设计与实现]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/88119386</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/88119386</guid><author>BHJ1119</author><pubDate>Mon, 04 Mar 2019 15:31:38 +0800</pubDate><description><![CDATA[在语音通信中Jitter Buffer（下面简称JB）是接收侧一个非常重要的模块，它是决定音质的重要因素之一。一方面它会把收到的乱序的语音包排好序放在buffer里正确的位置上，另一方面它把接收到的语音包放在buffer中缓冲一些时间使播放的更平滑从而获得更好的语音质量。下图是JB在接收侧软件框图中的位置。

 ...]]></description><category></category></item><item><title><![CDATA[LINUX检查一个进程内存增长的脚本]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/86589858</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/86589858</guid><author>BHJ1119</author><pubDate>Tue, 22 Jan 2019 10:08:18 +0800</pubDate><description><![CDATA[内存泄露很难查。

　　１、内存有没有泄露？

　　２、内存在哪里泄露？

　　为了解决第一个问题，吾绞尽脑汁，写了一个脚本，检查特定程序的内存增长。即只要增长就会输出。分享出来供大家参考。

# ps -A | grep ${PROCESS_NAME} | awk '{print $1}'
get_pid()
{
    process_name=$1
    text=`ps -A | gre...]]></description><category></category></item><item><title><![CDATA[H.264视频编码推荐的分辨率和码率配置表]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/84821344</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/84821344</guid><author>BHJ1119</author><pubDate>Wed, 05 Dec 2018 10:21:40 +0800</pubDate><description><![CDATA[在各种视频编码标准中，行业一直在求追“高压缩比（数据量越小越好）”，同时又保证“高视频质量”的算法。鱼和熊掌不可兼得，视频编码是一种折中的游戏。参数“视频码率”的设定，就代表了这种折中的选择。码率越高，数据量越大，视频质量越好，码率越小，数据量越小，视频质量越差。

但是，码率大到一定阈值之后，码率的提升带来的视频质量改善就会变得微不足道，所以这个码率阈值就显得非常重要。

网上这篇文章「Vide...]]></description><category></category></item><item><title><![CDATA[linux内核设计与实现读书笔记——linux内核开发准备工作与注意事项]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/84060999</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/84060999</guid><author>BHJ1119</author><pubDate>Wed, 14 Nov 2018 11:27:23 +0800</pubDate><description><![CDATA[一、下载内核源码

linux内核官网http://www.kernel.org

二、内核源码树

目录
			说明
		arch
			特定体系结构的代码
		block
			块设备I/O层
		crypo
			加密API
		Documentation
			内核源码文档
		drivers
			设备驱动程序
		firmware
			使用某些驱动程序而需要的设备固件
		fs
		...]]></description><category></category></item><item><title><![CDATA[linux内核设计与实现读书笔记——linux内核简介]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/83992596</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/83992596</guid><author>BHJ1119</author><pubDate>Mon, 12 Nov 2018 18:49:40 +0800</pubDate><description><![CDATA[一、内核简介        

Linux克隆了unix，但linux不是Unix。尽管linux借鉴了Unix的许多设计并实现了Unix的API（由POSIX标准和其他 Single Uinx Specification定义的），但Linux并没有直接使用Unix源码。在有些方面（比如，内核并不区分线程和一般进程，对linux内核而言，所有进程都一样，只不过有些进程共享资源而已），linux的实...]]></description><category></category></item><item><title><![CDATA[C++成员函数在内存中的存储方式]]></title><link>https://blog.youkuaiyun.com/BHJ1119/article/details/83818155</link><guid>https://blog.youkuaiyun.com/BHJ1119/article/details/83818155</guid><author>BHJ1119</author><pubDate>Wed, 07 Nov 2018 09:47:32 +0800</pubDate><description><![CDATA[用类去定义对象时，系统会为每一个对象分配存储空间。如果一个类包括了数据和函数，要分别为数据和函数的代码分配存储空间。按理说，如果用同一个类定义了10个对象，那么就需要分别为10个对象的数据和函数代码分配存储单元，如下图所示。



        能否只用一段空间来存放这个共同的函数代码段，在调用各对象的函数时，都去调用这个公用的函数代码。如下图所示。

        

        显然，...]]></description><category></category></item></channel></rss>