自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

御风牧云的代码笔记

整理一些BSP用到的东西

  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android开发环境搭建总目录

主要为编译环境搭建,编译错误处理 一、Ubuntu14下使用VirtualBox安装Win7二、Samba服务器搭建三、UBUNTU安装注意事项四、Android Studio: jcenter.bintray.com无法连接...

2019-01-12 17:39:09 183

原创 建模工具Bouml :生成类图

建模工具Bouml1 前言2 类图生成2.1 Environment Dialog2.2 创建工程2.3 逆向2.4 新建类图2.5 设置类图显示细节参考文献:深入浅出UML图Bouml官方Reference ManualBouml官方下载地址1 前言Android源码中的继承以及依赖关系非常复杂,Bouml可以帮助我们生成源码的类图,从而更好的理解源码的实现关系。有关UML的介绍请参考上述的参考文献。本文主要是以Android源码为例,基于最新的Bouml 7.9.1版本演示如何生成简单的类图

2020-06-07 17:35:51 1204

原创 Android智能指针(一) :轻指针LightRefBase的实现原理

LightRefBase 轻指针的实现原理前言1. 问题引出:指针的内存泄漏2. 解决思路:类的析构3. 新的问题:拷贝构造引发的重复析构前言本文参考了百问科技韦东山先生C++课程中对于智能指针的讲解,在此基础上根据自己的理解,形成本文。特此说明。1. 问题引出:指针的内存泄漏与Java自带内存回收机制不同,C++使用new方法创建类的对象后,如果不执行delete函数,这个对象会一直保留在内存的HEAP区域,导致内存泄漏。我们来看一个内存泄漏的简单实例:首先声明一个类://Person.

2020-05-20 13:47:08 452

原创 Qt 应用程序打包

1. 前言Qt编译生成的exe 无法直接运行,需要将依赖的dll文件,和资源文件包含进来。Qt 已经提供了Windows平台依赖项的打包工具。windeployqt2. 步骤2.1 添加环境变量在Qt 安装目录下找到windeployqt 所在的路径:例如D:\ProgramFiles\Qt5\5.14.1\msvc2017_64\bin将该目录添加至系统的环境变量...

2020-04-07 17:07:59 256

原创 Qt: PushButton 和 Timer

参考书籍《Qt5 开发及示例 : 2.5 控件》(PS : 不知道为啥作者讲控件的时候,聊起了Timer )1. PushButton代码示例:创建一个按键,单击退出窗口。#include "mywidget.h"#include "qpushbutton.h"#include "qfont.h"MyWidget::MyWidget(QWidget *parent)...

2020-03-12 16:36:50 352

原创 QVariant类

1. QtGui中调出控制台窗口项目属性中链接器子系统选择控制台2. QVariant示例QVariant 本质是一个Union,可以为任意的数据类型#include "widget.h"#include <QDebug>#include <QVariant>#include <QColor>Widget::Widget(QW...

2020-03-09 20:56:45 308

原创 Qt 容器类

1. QListQList 是最常用的容器类,其内部维护了一个指针数组,因此可以支持通过下标来访问。#include <QtCore/QCoreApplication>#include <QDebug>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QString str...

2020-03-08 22:35:51 153

原创 QString 字符串类

1. 控制台工程打印QString方法将Qstring 转化为 标志String 类型,然后可以使用printf 直接打印 QString str1 = "Hello Wordl!"; printf("%s",str1.toStdString().data());2. QString 常用操作操作接口 参数 说明 + < > == ...

2020-03-01 12:52:35 203

原创 Visaul Studio 2019 + Qt5 设计简单入门实例

参考文献 《Qt5 开发及实例》 章节1.31.案例说明实现的功能: 当用户输入一个圆的半径后,点击计算可以显示计算后的圆的面积值。2. 创建工程VS2019 中选择Qt GUI Application将工程命名为Dialog 然后按照默认设置创建工程。3代码结构Dialog.ui Qt Designer 前端界...

2020-02-27 16:03:19 2270 2

原创 QT + Visual Studio 2019 环境搭建

1. 安装Visual Studio 2019 和 Windows Driver Kit 10直接在微软官网下载安装Visual Studio DownloadDownload the Window Driver Kit2. 安装Qt 5下载链接:Qt Downloads选择合适的版本安装, 安装完成后,Qt5 会自动搜索添加 WDK的Debugger3. ...

2020-02-25 13:48:50 5118

原创 STM32 USB Custom-HID 基本功能

一,前言USB Device Custom HID 基本输入输出功能目标平台: STM32F103ZET/STM32F072RBHCubeMX版本: STM32CubeMX 5.5.0CubeMX FW版本:STM32Cube_FW_F1_V1.8.0 / STM32Cube_FW_F0_V1.11.0两个平台在USB Middleware...

2020-02-05 19:24:38 4853

原创 STM32 USB HID-Mouse 基本功能

一,前言 USB Device HID Mouse功能, 实现基本的单击,移动功能 目标平台: STM32F103ZET / STM32F072RBH CubeMX版本: STM32CubeMX 5.5.0 CubeMX FW版本:STM32Cube_FW_F1_V1.8.0 / STM32Cube_FW_F0_V1.11.0 两个平台在USB Midd...

2020-01-29 16:05:52 2068

原创 解决 GitHub 端口连接超时

一,前言 GitHub 端口默认使用的本机端口为22, 某些情况下如果此端口被占用,就会导致GitHub连接超时错误。ssh: connect to host github.com port 22: Connection timed out Windows下可以通过下面的命令,来查看端口占用情况netstat -ano二,解决方案 可以通过 ...

2020-01-29 14:25:39 2279 1

原创 USB Device 基本枚举流程

参考文档 《Universal Serial Bus Specification Revision 2.0》April 27, 2000参考文档 《STM32Cube USB 设备库 用户手册 UM1734》1. USB基本状态供电:设备连接到 USB 并由其供电,但还未接到复位请求。默认:设备连接到 USB,由其供电并复位,但并未分配唯一地址。地址:设备连接到 USB,由其供...

2019-12-04 15:51:23 1166

原创 MFC: Mscomm控件的使用

1. 前言MFC的串口开发可以使用两种方式,分别是API的形式,使用文件句柄的方式,还有一种更简洁的mscomm控件的方式。但是微软目前已经在VS环境中移除了mscomm控件,因此,这种方式需要手动添加mscomm的支持库。2. 安装方法支持库下载地址:https://github.com/musiclspace/mscomm/tree/master/mscomm-activeX...

2019-03-16 17:14:22 1206

原创 UBOOT下自定义显示BMP图片

参考文章《uboot修改启动logo-sunxi》思路首先分析bootlogo的显示。bootlogo的bmp图片在PACK时被加到固件包当中146 chips/${PACK_CHIP}/configs/${PACK_BOARD}/bootlogo.bmp:out/bootlogo.bmp374 lzma -k out/bootlogo.bmp并被压缩为lzm...

2019-03-02 17:11:12 1316

原创 NRF52840 DFU升级(四):GPREGRET标志位升级

参考博文《蓝牙nrf51822空中升级》相关文章:《NRF52840 DFU升级(一): 按键升级》                  《NRF52840 DFU升级(二):Hex文件打包》                  《NRF52840 DFU升级(三) : Buttonless 升级》 前言某些场合中,可能需要由应用程序通过按键或者协议指令等方式自动跳转到Boot...

2019-02-22 11:12:22 3620 1

原创 NRF52840 DFU升级(三) : Buttonless 升级

参考文献:Nordic官方博客 《Getting started with Nordic's Secure DFU bootloader, a step by step guide》                  Nordic官方文档 《Buttonless Secure DFU Service》《Buttonless DFU Template Application》相关文章:《NR...

2019-02-21 16:33:11 4123

原创 NRF52840 DFU升级(二):Hex文件打包

参考文献: Nordic官方博客 《Getting started with Nordic's Secure DFU bootloader, a step by step guide》相关文章:《NRF52840 DFU升级(一): 按键升级》                  《NRF52840 DFU升级(三) : Buttonless 升级》                  《...

2019-02-20 17:37:29 3502

原创 NRF52840 DFU升级(一): 按键升级

参考文献:Nordic官方博客 《Getting started with Nordic's Secure DFU bootloader, a step by step guide》小潘大神 《SDK12.0 nrf52832 空中升级详细步骤》本文简要梳理总体的按键升级流程,更多细节请参考上述两个文献。相关文章:《NRF52840 DFU升级(二):Hex文件打包》     ...

2019-02-20 15:24:28 4981 1

原创 Linux Android: 节点权限梳理

一、内核创建的节点权限例如修改内核创建/sys文件系统下的文件的权限时将代码从 __ATTR(type, 0644, xx_show, NULL); 改为        __ATTR(type, 0666, xx_show, NULL); 需要注意VERIFY_OCTAL_PERMISSIONS权限检查 二、系统的节点权限通常在device目录下的init...

2019-01-22 14:03:20 1110

原创 Linux GPIO-LED 实现自定义LED闪烁

一、前言用于非PMIC的LED,Linux内部有对应的库可以直接调用。二、CONFIG文件CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_GPIO=y使能内核的LED GPIO模块三、DTS描述添加GPIO-LED的具体描述gpio-leds { compatible = "gpio-leds"; status ...

2019-01-21 19:40:59 5600 1

原创 Linux DTS : 节点与属性的删除

一、节点删除应用条件:通常DTS中包含了多个平台的描述文件,且多个平台会共享一些通用的dtsi。这些dtsi的节点对于指定的平台来说,其节点未必全部需要,因此就需要将不需要的节点进行裁剪或者DISABLE。节点删除就是实现这个作用。例如: &amp;soc { /delete-node/ ssusb@a800000; /delete-node...

2019-01-16 17:43:19 3468 1

原创 Linux下USB串口: PL2303调试

一、CONFIG配置Linux Kernel 早在2.6的版本已经加入了对USB Serial设备的支持,只需要在CONFIG文件中添加对该设备的支持即可。CONFIG_USB_SERIAL=yCONFIG_USB_SERIAL_CONSOLE=yCONFIG_USB_SERIAL_PL2303=y添加该支持后,连接PL2303串口,可以看到dev下已经有了对应的节点:ttyUS...

2019-01-11 17:29:02 2734 2

原创 Android调试 USB音量范围修改

参考博文:《Android原生音量控制》参考博文:《深入理解AudioService》一、问题描述不连接USB耳机时,系统音量可以设置到最大值15,连接USB耳机后,系统音量仅能设置到4一、原因分析(1)安卓音频系统对不同的音频流设置了不同的音量控制范围,推测与该范围设置有关但是在源码中STREAM_MUSIC的最大值已经设置为了15,  mSafeMediaVolum...

2018-08-31 17:29:15 2972

原创 Ubuntu14.04安装注意事项

分配空间交换空间: 逻辑分区 8000M/              :   逻辑分区 20480,  内存2倍/home       逻辑分区,剩下空间 -200 (可以不划分home分区,全部给到根目录)/boot          主分区 ,200M交换空间 :  16384无法引导的解决方法 1、插上已经成功烧入系统的U盘,然后选择试用Ubuntu,进入Ubuntu系...

2018-08-06 18:46:36 138

原创 Samba服务器搭建

一.samba的安装sudo apt-get insall samba二. 创建/指定共享目录:mkdir /home/solen/share三. 修改Samba配置文件sudo vim /etc/samba/smb.conf在smb.conf最后添加其中的valid users代表需要用户名进行登录,这样可以获取比较完整的user权限,不添加用户名密码登录会造成没有写权限。如果只是单纯的需要读权...

2018-07-11 16:43:36 219

原创 Ubuntu14下使用VirtualBox安装Win7

目录地址:Android开发环境搭建总目录1. BIOS需要开启虚拟机选项2 官网安装Oracle_VM_VirtualBox_Extension_Pack-5.2.12.vbox-extpack,安装最新版本即可3. 修改vbox所在的权限分组(重要,如需使用USB等外设需要进行修改)查看所在权限分组cat /etc/group | grep vbox将当前用户加入vbox组:userm...

2018-07-11 15:07:20 311

原创 解决因内存不足导致的JackServer编译报错

参考博文:Jack-server出错:out of memory error,try increasing heap sizeAndroid N编译之Out of memory error解决方案:进入out/host/linux-x86/bin/目录下export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+Ti...

2018-02-08 09:13:23 2205 1

原创 Linux内核初始化顺序

include\linux\init.h#define pure_initcall(fn) __define_initcall("0",fn,1)#define core_initcall(fn) __define_initcall("1",fn,1) #define core_initcall_sync(fn) __define_initcall("1s",fn,1s) #

2018-02-05 19:43:32 572

原创 【MFC】MFC工程创建控制台打印Log消息

AllocConsole();        //创建控制台    HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);  //获取标准输出句柄    CString Msg =_T("打印消息");    WriteConsole(hConsoleOutput, Msg, Msg.GetLength(),NULL

2017-12-20 19:43:48 577

原创 Linux设备驱动程序(LDD) 第三章:Scull设备

简介SCULL是LDD为字符型设备驱动程序创建的一个示例。其作用是在内存中开辟一段缓冲区,这部分缓冲区可以写入数据,也可以读出数据。编译环境编译环境使用Ubuntu 10.04,内核版本2.6.35.14 LDD的源码包:http://pan.baidu.com/s/1kUU5cVl将源码包解压之后,进入scull目录下执行make指令编译,通常情况下编译是会报错的。这是因为源码包

2017-05-11 15:37:38 940

原创 Linux设备驱动程序(LDD)第二章:内核符号表

简介在内核中维护者一张符号表,记录了内核中所有的符号(函数、全局变量等)的地址以及名字,这个符号表被嵌入到内核镜像中,使得内核可以在运行过程中随时获得一个符号地址对应的符号名。而内核代码中可以通过 printk("%pS\n", addr) 打印符号名。本文介绍内核符号表的生成和查找过程。查找cat /proc/kallsyms | more示例

2017-05-11 10:36:26 504

原创 Linux设备驱动程序(LDD)第二章:Hello World模块

简介LDD第二章中以一个HELLO WORLD程序,阐述模块的安装与卸载。前置内容关于内核编译树的构建请参考博文:Ubuntu 10.04内核源码树的编译和安装源码编辑源码同LDD书中内容//hello.c #include #include MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void

2017-05-10 16:08:47 348

原创 Ubuntu 10.04内核源码树的编译和安装

参考博客:Ubuntu内核源码树的构建与安装简介本文主要讨论在Ubuntu10.04 LTS环境下,构建内核代码树的流程。内核镜像文件:https://pan.baidu.com/s/1slJdIBN构建环境1. 使用Vmware安装Ubuntu10.04的光盘镜像,并配置好网络,WIFI下使用NAT模式,网线可以使用桥接模式2. 更新sources.list,由于Ubuntu

2017-05-10 15:07:47 911 3

原创 VMWare 无法联网的配置

1.  打开服务选项,查看VMware的四个服务是否处于启动状态如果不在启动就启动一下,如果启动不了,则在VMWARE的编辑选项卡中还原一下默认配置即可。

2017-04-11 09:34:52 308

原创 Nordic-GPIO配置:初始化以及中断配置

一、前言继续分析Nordic GPIO部分的配置,作为芯片最基础的内容,剖析一下Nordic是如何处理GPIO配置的。二、GPIO结构如上图:ANAIN/ANAEN : 模拟信号输入输出DIR_OVERRIDE:方向过载??IN_OVERRIDE/OUT_OVERRIDE:输入/输出过载,应该是提高驱动能力的作用OUT就是信号输出端DETECT:应该是用来做

2016-12-28 14:00:06 6952

原创 Unicode文件操作

一、前言项目中需要在TXT中输出Log信息,将采集到的数值保存到文本文件中,于是应用本文所用到的知识点。二、编码方式使用UTF16 小端模式,即文件BOM为 0xff 0xfe三、代码实现3.1 文件打开将文件以二进制方式进行操作,特别注意,如果文本方式操作的话,是无法使用换行符的。然后将编码方式写到文件头。 fopen_s(&pFile, "Log.txt",

2016-12-08 09:38:39 674

原创 MIPI屏幕(一):TC358860手册

Main Link表示主通道,用于传输视频以及音频数据;1-4对数据线组成,每一对数据线为差分形式。传送的信号包括视频像素信号,视频定时信号,视频格式信号,比特/像素及颜色空间信号和视频信号的误差补正信号,采用ANSI8B/10B编码方式。数据传输采用交流耦合方式,发送端和接收端有不同的共模电压。ANS18B/10B编码是先将一组连续的8位数据分成两组数据,一组3位 一组5位,然后

2016-11-28 15:48:05 4270

原创 STM32F4系列DFU程序设计(HAL库)

一、前言MCU的DFU功能,在产品中必不可少。本例通过USB接口进行ROM区域APP程序固件升级。所用的硬件为STM32F401 Discovery开发板。参考STM32CUBE中文网的文章 http://www.stm32cube.com/question/500二、程序流程2.1 Cube代码生成Cube作为ST近年大力推行的初始化代码生成器,对于快速开发STM32程序

2016-10-27 09:02:23 4777

ADUX1050规格书

ADUX1050规格书,配置说明,操作原理手册 --------------------------------

2016-02-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除