<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[NAPO687的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/NAPO687</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; NAPO687]]></copyright><item><title><![CDATA[VS创建CMake项目配置UNICODE]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/125754925</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/125754925</guid><author>NAPO687</author><pubDate>Wed, 13 Jul 2022 00:34:18 +0800</pubDate><description><![CDATA[VS创建CMake项目配置Unicode编码]]></description><category></category></item><item><title><![CDATA[Ubuntu离线安装软件]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/122294977</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/122294977</guid><author>NAPO687</author><pubDate>Tue, 04 Jan 2022 00:08:01 +0800</pubDate><description><![CDATA[有的时候在公司的Linux环境上不能连接外网，不能方便的安装软件，可以先将软件包下载下来，然后到无网环境中安装。
以Ubuntu为例，使用bash脚本下载deb包。
#!/bin/bash

if [ $# -le 0 ]
then 
  echo "enter at least one parameter"
  exit 1
fi

WORK_DIR=`pwd`
for p in $@
do
  PKG_NAME=$p
  PKG_DIR=${WORK_DIR}/${PKG_NAME}
  
  if []]></description><category></category></item><item><title><![CDATA[iOS15 WebSocket断连问题]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/122006123</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/122006123</guid><author>NAPO687</author><pubDate>Fri, 17 Dec 2021 22:31:08 +0800</pubDate><description><![CDATA[iOS15 WebSocket连接bug处理。]]></description><category></category></item><item><title><![CDATA[vim剪切板不能使用]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/120027826</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/120027826</guid><author>NAPO687</author><pubDate>Tue, 31 Aug 2021 21:58:46 +0800</pubDate><description><![CDATA[在Ubuntu环境下使用Vim发现系统剪切板不能使用。Vim基础版本不支持剪切板，需要安装vim-gnome或者vim-gtk。Ubuntu20.04版本下使用apt发现没有vim-gnome依赖，尽量安装vim-gtk。
sudo apt-get install vim-gnome

sudo apt-get install vim-gtk


...]]></description><category></category></item><item><title><![CDATA[关于泛型的一些事情（随手一记）]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/113105550</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/113105550</guid><author>NAPO687</author><pubDate>Mon, 25 Jan 2021 11:02:56 +0800</pubDate><description><![CDATA[泛型

泛型就是泛化类型，又被称为参数化的类型，也就是将类型像是参数一样的进行传递，提高程序的复用性。
泛型在使用之间一定要提前声明，就像声明一个形参一样。
泛型常用于容器类中，因为一般一个容器可以装很多种类型的东西，一个碗里可以装西红柿鸡蛋面，也可以装宫保鸡丁，所以使用泛型就可以让容器拥有这种匹配多种类型内容的能力，这也是java中多态的体现。当然泛型也可以用在很多其他的地方，在java中提供的函数式编程api中也大量使用了泛型，因为其根本目的就是建立一个类型的模板。

泛型类

泛型类在创建对象的时候才]]></description><category></category></item><item><title><![CDATA[String和常量池的思考（随手一记）]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/113010143</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/113010143</guid><author>NAPO687</author><pubDate>Sat, 23 Jan 2021 00:17:49 +0800</pubDate><description><![CDATA[随手记一下String和常量池的一些知识点。
首先需要大概的了解编译期和运行期两个概念。
当编写完JAVA程序之后，首先将java文件编译成class文件，这就是编译期要做的事情，在编译期编译器会对程序进行一些优化。
当class文件编译出来之后，开始运行程序，将class文件动态的加载进JVM，程序就进入了运行期。
常量池（以下名字不准确，是自己叫的）：

静态常量池：程序编译完成之后，程序中一些不会改变的常量会保存到class文件中的一块地方，这里就是静态常量池
动态常量池：程序开始运行的时候，将静态常]]></description><category></category></item><item><title><![CDATA[String中的split方法（随手一记）]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/113007911</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/113007911</guid><author>NAPO687</author><pubDate>Fri, 22 Jan 2021 23:25:26 +0800</pubDate><description><![CDATA[JAVA中String类中的split方法，用来将字符串分隔为字符串数组（String[]）
split有两个重载方法


public String[] split(String regex)				// 参数为正则表达式



public String[] split(String regex, int limit)	// 第一个参数为正则表达式，第二个参数为分隔的块数

使用split分隔数组的过程：
根据正则表达式，从左往右进行匹配，遇到分隔符 ，将分隔符左边部分和右边部分分成两项，然后继续分割右]]></description><category></category></item><item><title><![CDATA[正则表达式中的正向预查和反向预查是怎么回事？]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/110198206</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/110198206</guid><author>NAPO687</author><pubDate>Thu, 26 Nov 2020 17:45:18 +0800</pubDate><description><![CDATA[正则表达式中的预查分为四种：
1、正向肯定预查 (?=pattern) 表示的是从其当前位置开始，预测后面的字符串必须匹配上pattern
2、正向否定预查 (?!pattern) 表示的是从其当前位置开始，预测后面的字符串必须匹配不上pattern
3、反向肯定预查 (?&lt;=pattern) 表示的是从其当前位置开始，预测前面的字符串必须匹配上pattern
4、反向否定预查 (?&lt;=pattern) 表示的是从其当前位置开始，预测前面的字符串必须匹配不上pattern
例子：
用户名的格式为]]></description><category></category></item><item><title><![CDATA[嵌入式linux驱动开发教程]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/106773771</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/106773771</guid><author>NAPO687</author><pubDate>Mon, 22 Jun 2020 21:45:12 +0800</pubDate><description><![CDATA[目录第二章 内核模块宏内核和微内核内核模块程序的初始化和退出函数原型内核模块的相关工具内核模块基本框架（内核最原始的结构）多个源文件编译生成一个内核模块内核模块参数(参数类型要注意)内核模块依赖内核模块和普通应用程序之间的差异（简答题）第三章 字符设备驱动设备驱动的种类不同设备驱动的特点字符设备驱动基础主设备号和次设备号字符设备驱动框架（编程题）虚拟串口设备操作第四章 高级I/O操作ioctl 设备操作对四种I/O模型的总结（问答题）proc 文件操作mmap 设备文件操作编程题
第二章 内核模块
宏内核和]]></description><category></category></item><item><title><![CDATA[嵌入式linux系统开发教程]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/106773761</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/106773761</guid><author>NAPO687</author><pubDate>Mon, 22 Jun 2020 21:45:02 +0800</pubDate><description><![CDATA[目录第四章 交叉开发环境目标板与主机的连接文件传输交叉开发环境的搭建第五章 BootLoader几种常用的BootLoaderBootLoader的启动方式U-Boot的常用命令第六章 配置编译内核内核配置方式KconfigKbuild Makefile中的变量内核编译结果内核配置选项第七章 内核移植基础设备树第九章 内核调试方法调试方法第十章 制作linux根文件系统inittab文件问答题1、如何制作根文件系统（重要）2、如何 编译 移植 调试 linux内核 （重要）3、如何 下载 编译 配置 移植 ]]></description><category></category></item><item><title><![CDATA[Android嵌入式底层开发技术]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/106773736</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/106773736</guid><author>NAPO687</author><pubDate>Mon, 22 Jun 2020 21:44:46 +0800</pubDate><description><![CDATA[目录第一章  Android 操作系统概述Android 软件架构介绍（五层架构）（填空题）Android的子系统Android 应用程序开发过程（2种形式的开发，开发过程）第二章  Android 源码开发环境搭建Android源码开发环境搭建步骤（简答题）编译Android源码搭建Android SDK开发仿真环境编译命令第三章  Android 系统的启动Android系统的启动过程（简答题）init进程完成的四大主要功能Android初始化语言（init.rc）四种类型声明第四章  Android ]]></description><category></category></item><item><title><![CDATA[ARM处理器开发详解]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/106773741</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/106773741</guid><author>NAPO687</author><pubDate>Mon, 22 Jun 2020 21:44:12 +0800</pubDate><description><![CDATA[目录第二章 嵌入式 ARM 技术概论选择ARM芯片的一般原则Cortex-A9内核的八种工作模式寄存器组织程序状态寄存器（重要）标志位控制位条件码表第三章 ARM 微处理器的指令系统ARM 处理器寻址方式批量Load/Store指令寻址方式堆栈操作寻址方式ARM处理器的指令集数据操作指令Load/Store指令单寄存器时多寄存器时跳转指令状态操作指令(操作程序状态寄存器)第四章 ARM 汇编语言程序设计ARM汇编器支持的伪指令GNU ARM 内联汇编汇编和C语言混合编程C程序调用汇编程序汇编程序调用C程序第]]></description><category></category></item><item><title><![CDATA[kotlin协程中使用Dispatchers.Main报错的问题]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/105497575</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/105497575</guid><author>NAPO687</author><pubDate>Mon, 13 Apr 2020 21:35:11 +0800</pubDate><description><![CDATA[在刚开始接触kotlin协程的时候，使用Dispatchers.Main操作主线程可能会遇到错误Module with the Main dispatcher had failed to initialize. For tests Dispatchers.setMain from kotlinx-coroutines-test module can be used。这可能是在普通的kotlin项目...]]></description><category></category></item><item><title><![CDATA[dbutils执行update语句时expected 1, was given 2 Query 等参数不匹配的问题]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/105489507</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/105489507</guid><author>NAPO687</author><pubDate>Mon, 13 Apr 2020 15:26:35 +0800</pubDate><description><![CDATA[第一种情况可能是真的参数不匹配，需要检查一下参数个数。
第二种情况
private QueryRunner run = new QueryRunner(DataSourceUtils.getDataSource(), true);

创建QueryRunner对象时需要加入参数true，就可以解决问题。
public QueryRunner(DataSource ds, boolean pmdKn...]]></description><category></category></item><item><title><![CDATA[ARM处理器开发详解（一）]]></title><link>https://blog.youkuaiyun.com/NAPO687/article/details/104258238</link><guid>https://blog.youkuaiyun.com/NAPO687/article/details/104258238</guid><author>NAPO687</author><pubDate>Tue, 11 Feb 2020 09:14:13 +0800</pubDate><description><![CDATA[文章目录嵌入式系统定义电气工程协会（IEEE）的定义 ：更广泛的定义：嵌入式系统的特点嵌入式系统的发展嵌入式系统主要经历的4个阶段：未来嵌入式系统的发展趋势：嵌入式系统的组成嵌入式系统的硬件组成嵌入式处理器：外围设备：嵌入式系统软件组成嵌入式操作系统举例嵌入式开发流程嵌入式开发概述交叉编译：交叉调试：软件调试：硬件调试：ROM监视器：ROM仿真器：在线仿真器：在线调试器：微处理器在嵌入式学习中的重...]]></description><category></category></item></channel></rss>