<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Frank的专栏]]></title><description><![CDATA[从起源理解事物，就是从本质上理解事物。]]></description><link>https://blog.youkuaiyun.com/jiasike</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jiasike]]></copyright><item><title><![CDATA[开始使用OpenCV]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/119517451</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/119517451</guid><author>jiasike</author><pubDate>Sun, 08 Aug 2021 17:27:04 +0800</pubDate><description><![CDATA[开始使用OpenCV
1. 编译OpenCV
1.1 使用命令行的方式配置OpenCV
OpenCV官网教程
OpenCV官网教程使用命令行的方式进行配置，写的很详细，按照教程操作，一般都能成功，由于国内访问GitHub不稳定，所以推荐使用wget获取OpenCV源码压缩包，这样比较快。

OpenCV的CMAKE的预定义的变量

cmake 
-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-master/modules
-DBUILD_NEW_PYTHON_SU]]></description><category></category></item><item><title><![CDATA[离线安装STM32CubeMX软件包]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/117838876</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/117838876</guid><author>jiasike</author><pubDate>Sat, 12 Jun 2021 10:12:27 +0800</pubDate><description><![CDATA[离线安装STM32CubeMX软件包
如果你使用STM32CubeMX，并且你的电脑没有联网，那么这篇文章对你有用。
1. 获取STM32软件包
点击下载你需要的STM32软件包

注意：本文以STM32F1系列为例进行讲解。


从上图中可以看出，STM32Cube软件包分为两部分：

基础包，版本是1.8.0
补丁包，版本是1.8.4，既是升级包

每一个版本的STM32CubeMX软件包，都会有基础包和补丁包，比如1.7版本的基础包就是1.7.0，升级包（补丁包）就是1.7.x。
2. 安装STM32]]></description><category></category></item><item><title><![CDATA[Linux通过shell脚本操作串口]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/107474930</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/107474930</guid><author>jiasike</author><pubDate>Mon, 20 Jul 2020 21:55:21 +0800</pubDate><description><![CDATA[Linux通过shell脚本操作串口
1.向串口发送数据

循环发送不同的字符串到串口/dev/ttyS1，时间间隔5秒

#!/bin/bash

while :
do 
    echo -e "send_string_1\r" &gt; /dev/ttyS1
    sleep 5
    echo -e "send_string_2\r" &gt; /dev/ttyS1
    sleep 5
done


循环发送不同的字符串到串口/dev/ttyS1，时间间隔0.5秒

#!/bin/bash
]]></description><category></category></item><item><title><![CDATA[VSCode与CMake搭配使用之交叉编译]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/107474690</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/107474690</guid><author>jiasike</author><pubDate>Mon, 20 Jul 2020 21:48:21 +0800</pubDate><description><![CDATA[首先你需要配置VSCode中的CMake插件：VSCode与CMake搭配使用之基本配置，如果你已经配置好了CMake插件，请继续往下看：
1. 在VSCode中设置交叉编译工具
打开cmake-tools-kits.json文件：
vim .local/share/CMakeTools/cmake-tools-kits.json

这个文件的作用就是：告诉VSCode当前系统中都有哪些编译器可供使用，一般是CMakeTools插件自动获取到的，但是CMakeTools插件无法自动获取到我们的交叉编译器。
]]></description><category></category></item><item><title><![CDATA[VSCode与CMake搭配使用之基本配置]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/107474368</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/107474368</guid><author>jiasike</author><pubDate>Mon, 20 Jul 2020 21:38:53 +0800</pubDate><description><![CDATA[1.首先安装VSCode插件CMake和CMake Tools


CMake插件主要功能是CMake语法高亮、自动补全
CMake Tools的功能主要是结合VSCode IDE使用CMake这个工具，比如生成CMake项目、构建CMake项目等

2.新建CMake项目
Ctrl+Shift+p打开VSCode的指令面板，然后输入cmake:q，VSCode会根据输入自动提示，然后选择CMake: Quick Start

然后选择适合你的编译器（VSCode会将你安装的编译器都罗列出来供你选择。如果你]]></description><category></category></item><item><title><![CDATA[C语言宏定义#与##]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/107450068</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/107450068</guid><author>jiasike</author><pubDate>Sun, 19 Jul 2020 19:36:00 +0800</pubDate><description><![CDATA[C语言宏定义#与##

“#” 字符串化


#include &lt;stdio.h&gt;

typedef struct os_thread_def  {
  char            *name;        ///&lt; Thread name
  int             pthread;      ///&lt; start address of thread function
  int             tpriority;    ///&lt; initial th]]></description><category></category></item><item><title><![CDATA[浅析C语言中的const与volatile关键字]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/107449991</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/107449991</guid><author>jiasike</author><pubDate>Sun, 19 Jul 2020 19:30:03 +0800</pubDate><description><![CDATA[C语言const与volatile
1. const
声明一个只读变量。
2. volatile
告诉编译器不要去优化volatile修饰的代码，并且每次直接从数据源头读取数据，不允许将数据缓存到寄存器。
注意：对volatile变量的操作不是原子性的。
注意：volatile在c语言中和在java语言中的含义是不同的，本文重要阐述在c语言中的作用
2.1 volatile的用途
2.1.1 寄存器访问（每次都直接从寄存器地址获取数据）
访问寄存器必须使用volatile修饰符。

对可读可写的寄存器使用v]]></description><category></category></item><item><title><![CDATA[类linux驱动模块框架module_init(init_fun)在STM32上的实现]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/107449830</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/107449830</guid><author>jiasike</author><pubDate>Sun, 19 Jul 2020 19:15:09 +0800</pubDate><description><![CDATA[设计思想
利用编译器的特性，在程序编译时将各模块初始化函数顺序存放到内存的指定地址，然后在程序运行时main函数从这块内存区域中 依次调用各模块的初始化函数，自动完成各个模块的初始化工作，同时增强了程序的高内聚低耦合特性，提高了软件的质量。
试验环境
工具链：Keil5
开发板：STM32F103ZE
1. 修改链接脚本
修改链接脚本的目的是：在STM32的内存中，留出一块合适的大小(大小根据自己的需求调整)， 用来存放各个模块的初始化函数
1.1 内存分配
在Keil中新建一个工程，编译后在工程目录下的O]]></description><category></category></item><item><title><![CDATA[完美解决：STM32CubeMX生成MDK项目报错]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/104836830</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/104836830</guid><author>jiasike</author><pubDate>Fri, 13 Mar 2020 11:18:28 +0800</pubDate><description><![CDATA[1. 报错信息

2. 解决方法

项目路径中不能有中文
卸载已安装的java，然后安装java8


]]></description><category></category></item><item><title><![CDATA[STM32机器学习开发实战]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/102750729</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/102750729</guid><author>jiasike</author><pubDate>Fri, 25 Oct 2019 22:15:09 +0800</pubDate><description><![CDATA[最近ST（意法半导体）公布了一个演示视频：在STM32上使用机器学习算法进行动作识别。视频如下（小编自己翻译的双语字幕，如果喜欢请关注本公众号，谢谢支持！）
点击播放视频
​
视频中使用的硬件是SensorTile开发板，SensorTile由一颗STM32L476JGY微控制器，一颗LSM6DSM MEMS加速度和陀螺仪芯片，一颗LSM303AGR加速度和地磁芯片，一颗LPS22HB气压传感器芯...]]></description><category></category></item><item><title><![CDATA[STM32内部Flash使用磨损均衡算法(Erase Leveling)]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/100537362</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/100537362</guid><author>jiasike</author><pubDate>Wed, 04 Sep 2019 13:49:18 +0800</pubDate><description><![CDATA[STM32内部Flash使用磨损均衡算法(Erase Leveling)
1. 设计思路


芯片：STM32F103ZET6


软件：STM32CubeHAL


Flash Page Size：2K


使用Flash的一页Page60(0x0801E000 ~ 0x0801E800(不包含))进行磨损均衡算法试验


数据帧格式：|0x5A|data1|data2|0xA5|


本实验F...]]></description><category></category></item><item><title><![CDATA[你真的理解补码吗？]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/95791506</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/95791506</guid><author>jiasike</author><pubDate>Sat, 13 Jul 2019 20:57:50 +0800</pubDate><description><![CDATA[补码
“在计算机系统中，数值一律用补码来表示。” 教科书上虽然这么说，但是却没有告诉我们为什么，
今天小编就带大家一探究竟！
计算机数值运算的基础硬件就是加法器，所以我们就从加法器讲起。
1. 加法器
加法器是计算机数值计算的最基础硬件单元，加减乘除都是以加法器为基础实现的。
加法器的构成如下图所示，其中S是和数，C是进位。

半加器

半加器电路是指对两个输入数据位相加，输出一个结果位和进位，没...]]></description><category></category></item><item><title><![CDATA[什么是边缘计算？]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/89074996</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/89074996</guid><author>jiasike</author><pubDate>Sun, 07 Apr 2019 20:59:33 +0800</pubDate><description><![CDATA[边缘计算其实是分布式计算的一种，边缘设备有许多特征是云端无法取代的，下面通过一段视频，直观的了解一下边缘计算吧！

博客不能上传视频，想看视频的同学，请文末扫码，关注小编微信公众号！

1.聊聊章鱼
在聊边缘计算之前，我们先聊聊这个星球上最魔性的生物之一——章鱼。

抛开喷墨、变色伪装这些基本技能不提，章鱼还能从瓶子内部打开瓶盖逃走，上演各种精彩绝伦的逃跑计划，或者悄悄把不喜欢的食物扔进排水口，它...]]></description><category></category></item><item><title><![CDATA[编译Android源码报错：clang++ kernel opps]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/72870234</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/72870234</guid><author>jiasike</author><pubDate>Fri, 05 Apr 2019 11:19:19 +0800</pubDate><description><![CDATA[这是swap区不够大的原因。导致clang++ kernel opps 
解决方法： 
请加大分区： 
sudo fallocate -l 6G /swapfile 
sudo chmod 600 /swapfile 
sudo mkswap /swapfile 
sudo swapon /swapfile 
开机自动挂载swap： 
使用 vi 或 nano 在 /etc/fstab 文件底部添加]]></description><category></category></item><item><title><![CDATA[《ARM嵌入式机器学习设计》连载1]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/88937052</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/88937052</guid><author>jiasike</author><pubDate>Sun, 31 Mar 2019 22:22:22 +0800</pubDate><description><![CDATA[本文翻译自《ARM Embedded Machine Learning Design》一书。本书共有5章，小编会分别翻译，并在公众号连载，喜欢的同学请关注小编，以免错过精彩内容哦！嵌入式软件杂货铺专注于边缘计算。

第一章：为什么需要将机器学习迁移到边缘设备？
机器学习(ML)是新计算时代以来计算机领域最伟大的转折点——它已经对几乎所有市场产生了重大影响。它领导了互联汽车技术的巨大进步，改变了医...]]></description><category></category></item><item><title><![CDATA[搭建自己的wiki知识管理系统]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/88930624</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/88930624</guid><author>jiasike</author><pubDate>Sun, 31 Mar 2019 16:22:57 +0800</pubDate><description><![CDATA[搭建自己的wiki知识管理系统

本文小编将带大家从零开始搭建一个属于你自己的wiki系统。
开源的wiki系统有很多，比如：

大名鼎鼎的MediaWiki
小巧易用的DokuWiki
国内开源的minDoc
Gitbook
Docsify
Hexo
MkDocs

小编选择使用的是MkDocs，因为它部署和使用都非常的简便，特别适合作为个人wiki知识管理系统。简单的说MkDocs就是将Mar...]]></description><category></category></item><item><title><![CDATA[你知道吗？MCU也能做Machine learning (ML)]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/88782412</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/88782412</guid><author>jiasike</author><pubDate>Sun, 24 Mar 2019 21:19:09 +0800</pubDate><description><![CDATA[你知道吗？MCU也能做Machine learning (ML)

刚刚过去的2018年被称为“人工智能元年”，2019年人工智能将会有更大的发展，将会有更多的AI项目落地。随着单芯片计算力的不断增长，机器学习（ML）不再是云计算和高性能处理器的专利，边缘计算正在崛起！
边缘计算为AI提供了新的可能性，比如实时智能语音识别和实时人脸检测，其实时性、可靠性和隐私安全性是云计算无法相比的。

实战开始...]]></description><category></category></item><item><title><![CDATA[搭建属于自己的云同步盘]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/88322396</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/88322396</guid><author>jiasike</author><pubDate>Thu, 07 Mar 2019 22:08:44 +0800</pubDate><description><![CDATA[第一篇：Samba初体验
家里一台电脑，公司一台电脑，文档来回Copy！！！Copy麻烦，版本混乱，工作效率低，有没有？同学把这一切都交给云同步盘吧！
但是，但是，但是…
现在中国市场上的云同步盘非常少，一些大厂都关闭了云同步盘的功能，还有一些云同步盘非VIP用户有网速限制，我能怎么办！！！
请你不要悲伤，就让小编带着你实现自己的云同步盘吧！
在第一篇中小编将教会你Samba的基本使用方法，Let...]]></description><category></category></item><item><title><![CDATA[浅析数据对齐]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/76731702</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/76731702</guid><author>jiasike</author><pubDate>Sat, 05 Aug 2017 19:08:19 +0800</pubDate><description><![CDATA[数据对齐1、为什么需要数据对齐？最早在8位CPU的时代，是没有数据对齐的需求的。当CPU发展到16位、32位或者64位时代时，才有了数据对齐的需求，因为CPU一次取4个字节的数据（以32位CPU为例），也就是说CPU是这么取数据的：0x00000000 , 0x00000004 , 0x00000008 ,0x0000000C ….如果把 int a = 0x12345678 存储在地址 0x000]]></description><category></category></item><item><title><![CDATA[linux模块相关的命令]]></title><link>https://blog.youkuaiyun.com/jiasike/article/details/72862738</link><guid>https://blog.youkuaiyun.com/jiasike/article/details/72862738</guid><author>jiasike</author><pubDate>Mon, 05 Jun 2017 00:02:07 +0800</pubDate><description><![CDATA[1、查看设备号cat /proc/devices2、加载模块insmod xxx.ko3、查看模块lsmod 4、卸载模块rmmod xxx.ko
5、创建设备节点
mknod /dev/xxx6、删除设备节点rm -f /dev/xxx]]></description><category></category></item></channel></rss>