<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[keystonew的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/keystonew</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; keystonew]]></copyright><item><title><![CDATA[Redis安装简介]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/121498196</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/121498196</guid><author>keystonew</author><pubDate>Tue, 23 Nov 2021 17:22:14 +0800</pubDate><description><![CDATA[简介
Redis是Remote Dictionary Server（远程字典服务器）字典结构存储数据，允许其他应用通过TCP协议访问。支持的数据类型：

 字符串类型
 散列类型
 列表类型
 集合类型
 有序集合类型

Redis存储数据在内存中。所以其特性是存储数据快。但是如果程序退出，数据会丢失。Redis提供了持久化支持，可以将内存中的数据异步的写入硬盘。
安装
下载Redis安装包，在Redis网站。
http://www.redis.cn/download.html

解压压缩包，进入解压的目录]]></description><category></category></item><item><title><![CDATA[STM32内部EE使用问题跟踪]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/121360646</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/121360646</guid><author>keystonew</author><pubDate>Tue, 16 Nov 2021 18:03:09 +0800</pubDate><description><![CDATA[背景

    使用STM32L103系列芯片，使用内部EE存放数据（不经常修改），在测试过程中出现串口接受数据不完全的问题，丢包。



原因分析

    查看芯片手册发现，内部EE是flash模拟出来的，在写数据之前的时候会禁用中断，写完后开启中断，如果在中途串口有数据接收，数据会丢失。只有在写完后串口才会恢复正常。



解决方案

    在使用内部EE的时候，一定要避开频繁的写入，一般固化一些固定的数据，在生产的时候写入一些常量，出厂后就禁止使用内部EE。
...]]></description><category></category></item><item><title><![CDATA[RTT实现串口打印]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/80962256</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/80962256</guid><author>keystonew</author><pubDate>Wed, 10 Nov 2021 14:25:15 +0800</pubDate><description><![CDATA[在做一个关于STM32项目时候发现串口资源缺少，就发现了通过Jlink工具里面自带的RTT可以实现串口输出打印，实现调试的功能，节约一个串口资源。1.在J-falsh安装的目录下面有关于RTT的文件（源文件和头文件）2.把源文件加入自己的工程中。3.在要用的文件中包含RTT的头文件。就可以调用RTT的printf函数就行数据的输出。4.打开Jlink_Reviewer的软件，就可以看见打印的信息，...]]></description><category></category></item><item><title><![CDATA[BootLoader（U-Boot）启动过程记录]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/121247453</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/121247453</guid><author>keystonew</author><pubDate>Wed, 10 Nov 2021 14:22:12 +0800</pubDate><description><![CDATA[BootLoader（U-Boot）启动过程记录
定义
Bootloader终极目的是引导内核，加载内核到内存然后跳转到内核的地方执行，在加载之前也会做一些硬件的初始化等等操作。启动模式分为两种：启动加载模式（产品形式，自启动），下载模式（开发模式，适用于开发人员调试使用）；以下记录都是以U-Boot为例。
源码下载地址
ftp://ftp.denx.de/pub/u-boot/

启动分析
本次记录是以hi3536启动流程为例进行的。
概述
U-Boot启动分析我大致分为两个阶段：汇编代码阶段，C语言阶段]]></description><category></category></item><item><title><![CDATA[Linux串口特殊字符处理问题]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/116449988</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/116449988</guid><author>keystonew</author><pubDate>Thu, 06 May 2021 11:42:05 +0800</pubDate><description><![CDATA[一、问题描述

   在嵌入式linux系统中通过串口收发数据，特殊字符如0x03,0x00等导致接收数据截断等现象。

二、原因分析

   1、在对串口进行配置的时候 struct termios 结构体参数设置问题，特殊字符在串口驱动内部做了处理，导致应用层接收不到数据

   2、或则是在应用层接收数据后，数据拷贝出现的问题，如果使用C++语言，通过赋值拷贝遇到结束符（0x00）结束拷贝，导致数据截断

三、解决方法

1、修改文件描述符fd相关的结构体struct term...]]></description><category></category></item><item><title><![CDATA[关于hi3536终端串口ctrl+c失效的问题]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/115204708</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/115204708</guid><author>keystonew</author><pubDate>Thu, 25 Mar 2021 13:44:43 +0800</pubDate><description><![CDATA[问题描述：

使用hi3536芯片，通过串口终端进入调试界面，使用命令行ping网络或则使用tail才看log日志，ctrl+c结束该命令的时候，进程不能退出命令失效。



问题分析：

通过内核启动启动打印出错：


：/bin/sh: can't access tty; job control turned off

以上说明在启动时tty出错，需要修改/etc/inittab文件



解决办法：

修改/etc/inittab文件，修改相应的字段：



需要在::respawn:/bin/l..]]></description><category></category></item><item><title><![CDATA[Hi3536 使用himm工具实现GPIO的读写操作]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/105977002</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/105977002</guid><author>keystonew</author><pubDate>Fri, 12 Mar 2021 11:37:34 +0800</pubDate><description><![CDATA[Hi3536 GPIO的读写操作，有两种方法：

1、重新编写GPIO的驱动程序，在通过访问设备进行GPIO的读写。

2、根据hisi给定的工具himm，进行寄存器值的读写。

我是采用第二种方案，毕竟轮子已经有没有必要再造轮子了。

step1：

修改himm.c文件，添加一个读寄存器值的操作。代码修改如下：


else if (argc == 3)
{
	if(memcmp(argv[2...]]></description><category></category></item><item><title><![CDATA[A40i nfs挂载问题]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/109614525</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/109614525</guid><author>keystonew</author><pubDate>Wed, 11 Nov 2020 11:37:44 +0800</pubDate><description><![CDATA[背景：

使用A40i的过程中，使用全志提供的源码没有办法挂载nfs（network file system），对开发效率有影响。



原因：

1、内核不支持nfs

2、在编译buildroot的时候没有工具支持nfs

3、挂载的网络目录必须有相应的权限

以上的几点需要同时支持才能通过mount挂载nfs。

注：保证开发板与要挂载的服务器网络的通畅，如果有问题需要配置网络。



解决方案：

kernel添加nfs支持，编译到内核中

进入kernel源码，执行make menconfig命.]]></description><category></category></item><item><title><![CDATA[嵌入式linux websocketpp的编译过程记录]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/109312356</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/109312356</guid><author>keystonew</author><pubDate>Tue, 27 Oct 2020 15:55:21 +0800</pubDate><description><![CDATA[websocketpphttps://github.com/zaphoyd/websocketpphttps://docs.websocketpp.org/getting_started.html

websocketpp的使用需要依赖boost库，boost库需要依赖openssl库，所以在使用之前需要准备好boost、openssl库和websocketpp源码。

websocketpp包含以下几个文件：

docs: 说明文档
	examples:演示实例
	test:单元测试确认您的代码正常工作.]]></description><category></category></item><item><title><![CDATA[win10安装arm交叉工具链，运行不了的问题]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/106276973</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/106276973</guid><author>keystonew</author><pubDate>Fri, 22 May 2020 11:56:40 +0800</pubDate><description><![CDATA[问题的原因：win10子系统不支持linux原生的头文件，需要安装一些库文件解决。

最后参考此博客，感谢！

https://www.cnblogs.com/JiuHuan/p/10073632.html



注意：

每次子系统启动的时候都需要运行此命令，才能生效：


sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x0.]]></description><category></category></item><item><title><![CDATA[C语言MQTT源码]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/106228111</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/106228111</guid><author>keystonew</author><pubDate>Wed, 20 May 2020 09:09:14 +0800</pubDate><description><![CDATA[MQTT源码链接：

https://mosquitto.org/
]]></description><category></category></item><item><title><![CDATA[编写程序获取 vector 容器的第一个元素。分别使用下标 操作符、front 函数以及 begin 函数实现该功能，并提 供空的 vector 容器测试你的程序]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/105973496</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/105973496</guid><author>keystonew</author><pubDate>Thu, 07 May 2020 15:22:21 +0800</pubDate><description><![CDATA[/***********************
编写程序获取 vector 容器的第一个元素。分别使用下标 
操作符、front 函数以及 begin 函数实现该功能，并提 
供空的 vector 容器测试你的程序
***********************/
#include &lt;iostream&gt;
#include &lt;vector&gt;

using namespac...]]></description><category></category></item><item><title><![CDATA[ln -s出现 Too many levels of symbolic links 错误]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/105786297</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/105786297</guid><author>keystonew</author><pubDate>Mon, 27 Apr 2020 11:17:20 +0800</pubDate><description><![CDATA[问题描述：

在嵌入式开发板上开发一个应用，在调试的时候通过软链接到/usr/bin目录下面执行，结果出现Too many levels of symbolic links。


ln -s ./firmware_upgrade /usr/bin/



问题原因：

出现上面问题的原因是在使用ln连接命令的时候出现相对路径地址./firmware_upgrade，结果在执行firmware_u...]]></description><category></category></item><item><title><![CDATA[Hi3536调试记录，内核启动]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/105765214</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/105765214</guid><author>keystonew</author><pubDate>Sun, 26 Apr 2020 11:29:18 +0800</pubDate><description><![CDATA[背景：

1、Hisi demo板子

2、SDK：Hi3536 V100R001C02SPC060

3、config配置选项：hi3536_full_slave_defconfig

4、DDR：2G Bytes

问题：

内核启动，打印如下问题：


Kernel panic - not syncing:
ASSERT failed at:
  &gt;File name: /home/p...]]></description><category></category></item><item><title><![CDATA[嵌入式linux文件系统缺少flash_eraseall工具]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/105761636</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/105761636</guid><author>keystonew</author><pubDate>Sun, 26 Apr 2020 09:06:55 +0800</pubDate><description><![CDATA[背景：

1、嵌入式linux开发，进行镜像升级功能，发现没有flash擦除工具。

2、文件系统下的工具通过busybox生成。

解决方案：

重新配置和编译busybox。

1、修改.config文件。把相应的选型设置为y；一下是关于flash的选项。


&gt; CONFIG_FLASHCP=y
&gt; CONFIG_FLASH_LOCK=y
&gt; CONFIG_FLASH_UN...]]></description><category></category></item><item><title><![CDATA[UDP组播通信问题]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/105582544</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/105582544</guid><author>keystonew</author><pubDate>Fri, 17 Apr 2020 16:11:35 +0800</pubDate><description><![CDATA[最近在开发板上运行一个UDP组播的程序，通过GDB发现在运行setsockopt的时候出现no such device的情况，在ubuntu环境可以运行，最后通过在开发板添加路由信息解决：

查阅资料出现上诉情况可能有两种情况：

1、开发板没有广播端的路由信息。

2、在编译内核的时候没有勾选支持TCP/IP协议。



查询开发板的路由信息


route -n

添加路由信息


rout...]]></description><category></category></item><item><title><![CDATA[linux下运行程序出现缺少库的问题]]></title><link>https://blog.youkuaiyun.com/keystonew/article/details/105514836</link><guid>https://blog.youkuaiyun.com/keystonew/article/details/105514836</guid><author>keystonew</author><pubDate>Tue, 14 Apr 2020 16:35:10 +0800</pubDate><description><![CDATA[在嵌入式开发的时候，会引用很多的.so文件，当通过编译工具编译好后，运行程序，可能会出现缺少库的情况，如下图：


./tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory

出现上面的现象是，操作系统运行程序会查找所要依赖的库文...]]></description><category></category></item></channel></rss>