<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[吾生也有涯，而知也无涯]]></title><description><![CDATA[以有涯随无涯殆已]]></description><link>https://blog.youkuaiyun.com/xiaoyink</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaoyink]]></copyright><item><title><![CDATA[linux pinctrl 子系统]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/144479729</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/144479729</guid><author>xiaoyink</author><pubDate>Sun, 15 Dec 2024 02:05:32 +0800</pubDate><description><![CDATA[Linux pinctrl subsystem]]></description><category></category></item><item><title><![CDATA[volatile c语言关键字 / cache / 内存一致性]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/127553618</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/127553618</guid><author>xiaoyink</author><pubDate>Thu, 27 Oct 2022 15:27:40 +0800</pubDate><description><![CDATA[volatile c语言关键字 / cache / 内存一致性]]></description><category></category></item><item><title><![CDATA[Android ko module compile 简介]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/122629734</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/122629734</guid><author>xiaoyink</author><pubDate>Fri, 21 Jan 2022 21:25:00 +0800</pubDate><description><![CDATA[Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
]]></description><category></category></item><item><title><![CDATA[EM算法原理]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/122163005</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/122163005</guid><author>xiaoyink</author><pubDate>Sun, 26 Dec 2021 23:22:27 +0800</pubDate><description><![CDATA[Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
]]></description><category></category></item><item><title><![CDATA[dlopen和constructor attribute]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/121686486</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/121686486</guid><author>xiaoyink</author><pubDate>Thu, 02 Dec 2021 21:04:31 +0800</pubDate><description><![CDATA[https://www.notion.so/dlopen-constructor-attribute-9fafb4ca4490459db76e389ba0da8856https://www.notion.so/dlopen-constructor-attribute-9fafb4ca4490459db76e389ba0da8856
]]></description><category></category></item><item><title><![CDATA[傅里叶变换的直观理解]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/121529009</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/121529009</guid><author>xiaoyink</author><pubDate>Thu, 25 Nov 2021 01:50:10 +0800</pubDate><description><![CDATA[傅里叶变换的直观理解 (notion.so)https://www.notion.so/ddcc0d6209ae43ad83ccb84e7686de00
]]></description><category></category></item><item><title><![CDATA[设备树中那些节点会被转换为内核里的platform_device]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/115708697</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/115708697</guid><author>xiaoyink</author><pubDate>Wed, 14 Apr 2021 20:47:04 +0800</pubDate><description><![CDATA[设备树中的节点有些能被转换为内核里的platform_device，有些不能：

A. 根节点下含有compatile属性的子节点，会转换为platform_device;

B. 含有特定compatile属性的节点的子节点，会转换为platform_device,

如果一个节点的compatile属性，它的值是这4者之一：“simple-bus”,“simple-mfd”,“isa”,“arm,amba-bus”, 那么它的子结点(需含compatile属性)也可以转换为platform_device]]></description><category></category></item><item><title><![CDATA[shell中的变量和Makefile中的变量]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/115665423</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/115665423</guid><author>xiaoyink</author><pubDate>Tue, 13 Apr 2021 14:32:57 +0800</pubDate><description><![CDATA[一、Makefile中引用shell中的变量

test.sh


#!/bin/bash

set -e

export DIR=/home/yuyin.wei

make print


Makefile


print:
        echo $(DIR)


执行test.sh，结果如下：


echo /home/yuyin.wei
/home/yuyin.wei

如果此时Makefile中使用echo $$(DIR)，反而会出错，如下：


echo $(DIR)
/bin/sh: DIR]]></description><category></category></item><item><title><![CDATA[linux I2C驱动]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/112763777</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/112763777</guid><author>xiaoyink</author><pubDate>Mon, 18 Jan 2021 14:46:33 +0800</pubDate><description><![CDATA[I2C驱动分为I2C适配器驱动和I2C设备驱动，I2C适配器驱动芯片厂商已经帮我们实现好了，I2C设备驱动需要用户自己编写。下面我们主要就这两个方面进行分析。另外这里举例是用NXP的imx6ull芯片。

I2C适配器驱动

linux启动最先运行的I2C驱动相关函数是i2c_init()，这个函数是linux内核实现的，而不是厂商实现的，位于drivers\i2c\i2c-core.c文件第1879行：


static int __init i2c_init(void)
{
	int retval;

]]></description><category></category></item><item><title><![CDATA[卡尔曼滤波]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/112648697</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/112648697</guid><author>xiaoyink</author><pubDate>Fri, 15 Jan 2021 10:54:57 +0800</pubDate><description><![CDATA[推导相关

预测(predict)





更新(update)







其中是隐状态，也是我们想要获得的状态，但是我们无法测量，只能根据观测值进行推测，是观测值，

predict相当于根据以往1到t-1的观测值...来预测t时刻的隐状态，用概率公式来表示就是，由于隐状态是连续的，而不是离散的(discrete)，所以可以用概率密度函数表示，实际上这是一个高斯分布，，其中，是此分布的期望，是此分布的协方差矩阵，在上述预测的公式中代表的就是期望，代表的就是协方差矩阵

update就是根据1到t时刻]]></description><category></category></item><item><title><![CDATA[协方差矩阵 多元高斯分布]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/112640861</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/112640861</guid><author>xiaoyink</author><pubDate>Thu, 14 Jan 2021 23:27:46 +0800</pubDate><description><![CDATA[协方差矩阵

对于一维随机变量直接用方差即可衡量随机变量x与其期望E(x)的偏离程度，对于多维随机变量X，需要用一个矩阵来表示偏离程度，矩阵的对角线是每个维度自己的方差，对角线以外表示不同的维度之间的协方差，所以协方差矩阵是实对称矩阵。

协方差矩阵的计算公式



所以有如下性质：

如果随机向量Y=PX，其中X，Y为随机向量，P为矩阵（方阵）



也就是



多元高斯分布

一元高斯分布概率密度函数如下：



多元高斯分布为：



具体推导过程可以参考：https://zhuanlan.zhi.]]></description><category></category></item><item><title><![CDATA[linux驱动 阻塞IO 等待队列 等待队列入口]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/111145570</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/111145570</guid><author>xiaoyink</author><pubDate>Mon, 14 Dec 2020 15:13:28 +0800</pubDate><description><![CDATA[阻塞IO主要有两种方式，等待队列，等待队列头

一、等待队列


]]></description><category></category></item><item><title><![CDATA[linux设备树中的#address-cells #size-cells]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/110295373</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/110295373</guid><author>xiaoyink</author><pubDate>Sat, 28 Nov 2020 22:40:21 +0800</pubDate><description><![CDATA[用于描述子节点的地址信息，即reg属性中，地址信息占几个uint32，地址长度占几个uint32，单位为uint32（4字节）

注意，这里是描述子节点的地址信息，而不是本节点的地址信息
]]></description><category></category></item><item><title><![CDATA[arm中的B指令]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/109029448</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/109029448</guid><author>xiaoyink</author><pubDate>Mon, 12 Oct 2020 16:09:23 +0800</pubDate><description><![CDATA[参考：http://blog.chinaunix.net/uid-30311790-id-5755862.html

一、B指令是绝对跳转还是相对跳转？

B指令是相对跳转指令，是根据当前PC寄存器的值加上偏移来实现跳转的，所以它和代码在内存中的位置无关。

但是我们在查看汇编文件的时候，经常会有种错觉，它好像是按绝对地址进行跳转的，因为B指令的形式是 “B Label"，即跳转到Label处进行执行，Label这个标签明显是绝对地址啊。其实在汇编语句翻译成机器码时会将语句翻译成按相对地址进行寻址。计算方.]]></description><category></category></item><item><title><![CDATA[thumb指令和arm指令]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/109027311</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/109027311</guid><author>xiaoyink</author><pubDate>Mon, 12 Oct 2020 15:52:07 +0800</pubDate><description><![CDATA[参考https://www.embedded.com/introduction-to-arm-thumb/

一、为什么一个芯片需要thumb和arm两套指令集

许多复杂的功能在复杂指令集（CISC）处理器上执行只需要单一的一条指令，即可，虽然可能有点慢，在精简指令集处理器上可能需要多条指令，所以在精简指令集（RISC）CPU上为了减少额外的指令对内存的消耗，考虑引入thumb指令集到处理器。

现在最受欢迎的32位微处理器许多都使用RISC技术，不像CISC处理器，RISC引擎每一个时钟周期（个人感觉应]]></description><category></category></item><item><title><![CDATA[u-boot中的make menuconfig和头文件配置是如何同时发挥作用的]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/108639093</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/108639093</guid><author>xiaoyink</author><pubDate>Thu, 17 Sep 2020 12:25:32 +0800</pubDate><description><![CDATA[这里以正点原子的i.mx6ull的alientek开发板为例

1.我们可以通过include/configs/mx6ull_alientek_emmc.h头文件对u-boot进行裁剪配置，这个文件是我们移植到正点原子开发板的时候自己添加的

2.
]]></description><category></category></item><item><title><![CDATA[u-boot是如何重定位代的（如何拷贝自己的）]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/108590429</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/108590429</guid><author>xiaoyink</author><pubDate>Mon, 14 Sep 2020 23:20:55 +0800</pubDate><description><![CDATA[u-boot在启动之后会在_main函数中将自己重定位到靠近DDR内存尾部的地方，避免和linux内核代码冲突
]]></description><category></category></item><item><title><![CDATA[u-boot的链接脚本文件u-boot.lds分析]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/108586536</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/108586536</guid><author>xiaoyink</author><pubDate>Mon, 14 Sep 2020 20:06:12 +0800</pubDate><description><![CDATA[u-boot 版本: 2016.03，NXP更改过的版本，正点原子再次更改，详细可参见正点原子的教程。

这里先贴出来链接脚本文件，它是生成过程，可以参考https://blog.youkuaiyun.com/xiaoyink/article/details/108508415，里面有简略的提到，这里主要分析此文件的含义，如下：


OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(]]></description><category></category></item><item><title><![CDATA[链接脚本文件、C源文件、arm汇编源文件中 地址常量  如何相互引用]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/108348928</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/108348928</guid><author>xiaoyink</author><pubDate>Mon, 14 Sep 2020 15:00:46 +0800</pubDate><description><![CDATA[1
]]></description><category></category></item><item><title><![CDATA[u-boot编译 Makefile 简单分析]]></title><link>https://blog.youkuaiyun.com/xiaoyink/article/details/108508415</link><guid>https://blog.youkuaiyun.com/xiaoyink/article/details/108508415</guid><author>xiaoyink</author><pubDate>Thu, 10 Sep 2020 16:50:35 +0800</pubDate><description><![CDATA[u-boot 版本: 2016.03，NXP更改过的版本，正点原子再次更改，详细可参见正点原子的教程。

1. make xxx_defconfig的过程

从顶层Makefile开始，前面的变量赋值分析，可以参考《正点原子 I.MX6U嵌入式Linux驱动开发指南》

我们直接从上述得到：


config-targets = 1 
mixed-targets = 0 
dot-config = 1

根据上述变量进行ifeq等条件选择后，make xxx_defconfig匹配的规则如下（顶层Ma...]]></description><category></category></item></channel></rss>