自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 AWTK移植STM32F767

AWTK移植STM32F7671. 资料下载1.1 下载源码源码官方仓库:码云awtk官方参库AWTK移植STM32F767官方demo :官方移植demo1.2 下载官方文档以下几个文档是移植AWTK需要仔细阅读。AWTK开发实践pdfAWTK 硬件资源需求评估嵌入式平台移植注意事项AWTK Designer快速使用指南.pdf (位于AWTK designer安装目录下)1.3 安装awtk designer官网下载地址:AWTK官网地址2. 移植前硬件准备移植AWTK前

2020-08-17 17:34:09 3137 1

原创 Java线程基础

1.Java线程线程,程序执行流的最小执行单位,经常容易和进程这个概念混淆。2.Java生命周期3.新建线程java提供两张方式来创建线程,继承Thead类和实现Runnable接口。3.1 方式1:继承线程Thread创建线程1.代码示例如下:package yangyongfeng.highconcurrencedemo;public class ThreadCreateT...

2020-02-17 18:33:56 98

原创 搭建maven环境

maven介绍maven希望提供一种标准的方式编译工程,一种项目内容的清晰明确定义,一种简单方式发布项目及可以跨项目进行JAR文件分享,maven是一种可以编译和管理java工程的工具。1. maven下载与安装1.1 下载下载地址:官网:http://maven.apache.org/download.cgi1.2 安装新建一个目录如:D:\DevelopTools\MAVEN...

2020-01-07 17:03:38 459

原创 alios-things 任务管理一

前言一直想深入了解下物流网、IOT,跟上时代潮流。去年alios things推出的时候,就自己买了一块alios-things developer开发版,一直放在办公室的抽屉里,没有用起来。现在alios-things都已经更新到3.0版,最近决定把alios-things捡起来,又把这块板找出来了,因为开发版是基于2.0版的,因此还是基于alios-things 2.0版学习。 在工作中项...

2019-11-06 13:11:20 1512

原创 Java IO流--应用场景练习

Java IO流应用场景编程序言Java提供了丰富的字节流基类InputStream和OutputStream的子类,字符流Reader和Writer的子类,以适应不同应用场景。在实际使用Java IO时需要对各种IO流进行组合以适应场景需要。应用场景1. 从键盘获取用户输入 Employee e = new Employee(); System.out.println("Pl...

2019-05-14 14:50:00 1448

原创 一文了解LVGL的链表数据结构

1. 引言      本本探究下LVGL使用的数据结构:链表, LVGL使用的链表是带链表头,尾的双列表。2 数据结构定义2.1 链表节点的定义typedef struct { uint32_t n_size; lv_ll_node_t * head; lv_ll_node_t * tail;} lv_ll_t;2.2 链表节点的内存分布图注意: 链表节点的数据结构定义和内存分布是不对应的(64位cpu时)

2021-09-22 18:15:13 2489

原创 一文详解RT-thread自动初始化

1. RT-thread启动流程      我们先来看RT-thead的启动流程,其在rt_components_board_init()和rt_components_init()分别对RT-Thread定义的7个等级的初始化函数按顺序进行了自动初始化。2. 自动初始化原理...

2021-06-08 17:04:08 1562

原创 深入了解RT-thread FinSH功能

文章目录1.简介2.Finsh功能配置3. Finsh启动流程4.1 Finsh控制台通讯参数设置5. 连接Finsh控制台6.FinSH功能测试6.1标题打印线程信息6.2打印信号量7.总结8.关于作者1.简介      Finsh是RT-Thread的命令组件,它提供了一套供用户在命令行调用的操作接口,我们使用它可以很方便的进行调试调试或查看系统信息。它可以使用串口/以太网/USB等方式与PC机进行通信,硬件拓扑结构如下:2.Finsh

2021-05-26 17:27:55 2425

原创 一文深入了解BCD码

什么是BCD码?BCD码(Binary-Coded Decimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码也称二进码十进数,BCD码可分为有权码和无权码两类。其中,常见的有权BCD码有8421码、2421码、5421码,无权BCD码有余3码、余3循环码、格雷码,其中最常使用的为8421码,下面所述的都是基于8421码。BCD码的优点相对浮点数,采样BCD码可保持数据精度,又可以免去CPU计算浮点所消耗的时间。相对浮

2021-04-24 18:40:42 7124

原创 10天阅读挑战--DAY4---设备树规范

文章目录1) 引言2) 设备树官方信息3) DAY4 笔记2.3.6 寄存器(reg)2.3.7 virtual-reg 2.3.8 ranges 2.3.9 dma-ranges 2.3.10 name(过期)2.3.11 device_type(过期)4) 关注我1) 引言       Linux作为当前流行的操作系统,其在驱动的架构上面也是不断的进步和完善。在早期的Linux内核和ARM架构中并没有采用设备树, 因此Liunx驱动代

2021-04-04 18:52:36 271

原创 10天阅读挑战--DAY3---设备树规范

文章目录1) 引言2) 设备树官方信息3) DAY3 笔记2.3.2 型号 2.3.3 phandle 2.3.4 状态 2.3.5 #address-cells 和size-cells 4) 关注我1) 引言       Linux作为当前流行的操作系统,其在驱动的架构上面也是不断的进步和完善。在早期的Linux内核和ARM架构中并没有采用设备树, 因此Liunx驱动代码中包括大量冗余代码来描述对应平台的板信息,尤其是ARM架构平台。随着

2021-04-03 09:17:25 246 1

原创 10天阅读挑战--DAY2---设备树规范

文章目录1) 引言2) 设备树官方信息3) DAY2 笔记2.2.4 属性2.3 标准属性2.3.1 compatible4) 关注我1) 引言       Linux作为当前流行的操作系统,其在驱动的架构上面也是不断的进步和完善。在早期的Linux内核和ARM架构中并没有采用设备树, 因此Liunx驱动代码中包括大量冗余代码来描述对应平台的板信息,尤其是ARM架构平台。随着移动智能设备的迅猛发展,ARM架构芯片每年推出数百款,从而造成Li

2021-04-02 14:41:01 193 1

原创 10天阅读挑战--DAY1--设备树规范

文章目录1. 引言2. 设备树官方信息3. DAY1 笔记2.1 概述2.2 设备树结构和规则4. 关注我1. 引言       Linux作为当前流行的操作系统,其在驱动的架构上面也是不断的进步和完善。在早期的Linux内核和ARM架构中并没有采用设备树, 因此Liunx驱动代码中包括大量冗余代码来描述对应平台的板信息,尤其是ARM架构平台。随着移动智能设备的迅猛发展,ARM架构芯片每年推出数百款,从而造成Linux内核板信息过多,使得l

2021-04-01 19:54:45 225

原创 使用IDEA基于Gradle搭建Javafx开发环境

1. 引言      学习一门新语言最好的方式进行项目开发实战,例如我们可以自己做一些小工具应用于工作或学习,提供效率,这样有利于保持学习兴趣和进一步巩固开发知识。我在学习java的过程中,一直想使用它做些小工具。      JavaFX 是一个开源的下一代客户端应用平台,适用于基于Java构建的桌面、移动端和嵌入式系统, 使用它可以快速开发客户端应用。  &nb

2021-03-24 21:31:13 2698 2

原创 一文看懂ArrayDeque

文章目录1. 前言2. ArrayDeque的类继承图3.ArrayDeque类法3.1 构造函数3.2常用方法4. ArrayDeque 实现栈5. ArrayDeque实现队列6. ArrayDeque底层算法研究6.1 初始容量分配6.1.2 初始容量分配算法6.1. 2 ^n 初始容量分配算法6.2 自动扩容6.2 索引操作1. 前言      我们在实际的软件开发中经常会使用两种数据结构:栈和队列。Java语言有实现一个Stack的

2021-03-06 08:30:34 576 1

原创 一文了解ArrayList

1. 前言      Java集合类是一种特别有用的工具类,可以用于存储数量不等的对象,并可以实现常用的数据结构,如栈,队列等。Java集合大致可分为Set,List,Queue和Map四种体系。      Java集合类主要有两个接口派生而出:Collection和Map, Collection和Map是Java集合框架的根接口,这两个接口又包含一些子接口或实现类。如图是Collec

2021-03-01 07:20:21 320 2

原创 反射分析类

文章目录1. 前言2. 获取Class对象方法2.1.使用实例对象获取Class类2.2 Class类常用方法3. 反射3.1 利用反射分析类Modifier类3.2 使用反射分析类的域3.2.1 反射包Field类常用方法3.2.2 demo3.3 使用反射Method类 分析类的方法3.3.1Method类常用方法3.3.2 demo3.4 使用反射包Constructor类分析类构造函数3.4.1 Constructor类常用方法3.4.2 demo4. 我的公众号5. 鼓励作者1. 前言在程序运

2021-02-08 19:43:55 145

原创 STM32L151RE波特率设置

文章目录1. 前言2. 问题追踪步骤1: 实测波特率1. 前言最近开发一个项目,使用低功耗芯片STSTM32L51RE,为降低功耗,芯片默认使用MSI(内部低速时钟)作为主频时钟。MSI频率选择了RANGE 1,设置为131K。在实际开发过程中我遇到过波特过低(如1200bps),波特率分频设置越限而达不到这么低,但没遇到过9600这么高参数设置的问题。之前一直使用的ST的库,并没有深入研究其怎么实现的,本文对这个问题做了总结。2. 问题追踪硬件问题排除因为系统时钟选择的时PLL,设置为32MH

2021-01-16 22:12:08 1110

原创 android NDK JNI访问静态方法和实例实例方法

文章目录1. 引言2. JNI访问实例方法2.1 JNI访问实例方法流程‘2.2 JNI访问实例方法接口2.3 代码实践2.3.1 JNI java接口类2.3.2 JNI 原生方法实现2.3.3 修改CMake.txt编译文件2.3.4 android app demo测试4. 遇到的问题5. 代码工程1. 引言通过JNI函数可以回调访问java语言支持两种方法:实例方法和静态方法。2. JNI访问实例方法2.1 JNI访问实例方法流程‘2.2 JNI访问实例方法接口2.3 代码实践2.

2021-01-01 17:34:01 393

原创 android NDK JNI访问静态成员

文章目录1.概述2. 静态成员访问流程3. java类静态成员JNI访问接口3.1 静态成员读访问接口(GetStaticxxxField)2. 静态成员访问实现2.1 定义JNI类2.3 定义JNI 库实现标题修改CMakeLists.txt测试demo1.概述  JAVA编程语言支持两种成员,每个实例都有自己的类成员拷贝,然而所有实例共享静态成员。 JNI提供一系列函数支持原生代码获取和设置实例成员和类静态成员。本篇我们来介绍下如何访问类静态成员。2. 静态成员访问流程3. java类静态成员

2020-12-30 20:18:37 496

原创 android NDK JNI访问实例成员域

文章目录1.概述2. 实例成员访问2.1 java类2.2 原生代码实现2.3 原生代码访问类实例成员流程3. Java VM Type Signatures3.1 签名举例代码工程标题公众号1.概述  JAVA编程语言支持两种成员,每个实例都有自己的类成员拷贝,然而所有实例共享静态成员。 JNI提供一系列函数支持原生代码获取和设置实例成员和类静态成员。2. 实例成员访问2.1 java类我们定义一个java类 InstanceFieldAccess,其中包含原生方法定义,改类包含两个成员,代码如

2020-12-28 21:10:27 162

原创 JNI设计概述

文章目录JNI设计概述1. 引言2. JAVA Native Interface(原生接口)3.历史背景4. JDK 1.0 Native Method InterfaceJNI设计概述1. 引言 JNI是一个原生编程接口,它使得运行在Java虚拟机中的代码可以和其他编程语言实现的应用或库进行交互,例如C 、C++、汇编。 JNI的最大优势是无需对Java虚拟机的实现做任何限制,编程程可以实现一个版本的原生应用或库,并可期望器可以在所有支持JNI 的虚拟机上运行。 本文是

2020-12-23 17:30:42 133

原创 2020-09-27

MQTT 5.0规范–发布完成3.7 发布完成(Publish complete)发布完成包是对发布接收包的响应,它是第四包且为QoS2协议交换的最终包。3.7.1 发布完成固定头(PUBCOMP Fixed Header)剩余长度域这是可变头的长度,编码为可变长度整数。3.7.2 发布完成可变头(PUBCOMP Variable Header)3.7.2.1 发布完成消息码(PUBCOMP Reason Code)可变头字节3,如果剩余长度为2,则默认0x00(Success)客户端和服

2020-09-27 09:24:50 79

原创 2020-09-23

MQTT规范阅读----发布消息发布包即为从客户端到服务端或服务端到客户端的应用消息3.3.1 发布固定头3.3.1.1 DUP位置:字节1,bit3DUP置0,表明当前为客户端和服务端间第一次尝试发送发布包。DUP置1,表明可能为重发发布包。所有QoS 0消息,DUP必须置0。服务端发送给订阅者的发布包,其不再传播接收的发布包中的DUP标记。接收的发布包和发送的发布包相互独立。接收到的发布包中DUP标记置1, 不保证其已接收过该包。3.3.31.2 QoS位置: byte 1, bi

2020-09-23 09:35:51 99

原创 MQTT系列--连接请求

MQTT控制包—连接请求1.连接请求客服端和服务端建立连接后,客户端发给服务端的第1个包必须为连接包。客服端只可通过网络发送一次连接包。服务端必须将第2个客户端发送的连接包做为协议错误,并关闭网络连接。负荷包含一个或多个编码域。他们分配一个唯一的客户端标识给客户端,一个遗愿主题、负荷数据,用户名和密码。除了客户标识符可以忽略,所有其他的已经可变头标记决定是否存在。1.2 连接固定头1.3 连接可变头连接包可变头包含如下顺序数据与:协议名称,协议版本, 连接标记,keep alive以及属性。

2020-09-14 09:58:02 1220

原创 MQTT系列---数据格式

MQTT系列—数据格式前言要解析或组合MQTT的数据包,必须了解MQTT的数据格式,本章我们先来了解下MQTT的基本数据格式。1. 数据格式1.1 双字节整型双字节整型为16bit无符号数,大端模式(高字节在前,低字节在后),MSB在前,LSB在后。1.2 四字节整型四字节整型为 32-bit 无符号整型,大端模式(高字节在前,低字节在后),MSB在前。1.3 UTF-8编码字符串UTF-8控制包描述的文本域被编码为UTF-8字符串。每个字符串前有一个双字节整型前缀,字符串最大长度为655

2020-08-20 09:03:22 2634

原创 MQTT系列--- 术语

MQTT术语前言MQTT作为目前物联网常用的一种通讯协议,日前工作中也需要使用到MQTT,正好研究一下。学习任何通讯协议,最好的入门方式就是先看其官方协议规范,本章我们先了解一下MQTT的专业术语。1. 术语1.1 网络连接连接客户端到服务端。提供一种有序、无损、双向字节流方式。1.2 应用消息MQTT协议为应用跨网络运载的数据。MQTT传输应用消息是,她包含负荷数据,服务质量(QoS), 一个属性组合及标题名称。1.3 客户端(Client)使用MQTT的程序或设备,即为客户端:

2020-08-19 08:21:51 591

原创 docker快速启动之二:创建和运行你的镜像

前言上一边我们已经介绍如何安装和设置docker,本篇我们再参考官方手册继续深入学习docker镜像的创建和运行,官方文档见docker官方原文。1. 介绍(Introduction)现在我们已经设置环境,基于Docker Desktop,你现在可以开发容器应用。总的来说,开发流程如下:通过创建Docker images,为你的应用每个组件创建和测试独立容器。组合你的容器和支持设施成一...

2020-03-11 17:35:10 509

原创 docker快速启动之一----docker概念与安装

文章目录1.前言2. Docker的特点(Docker concepts)3. 映像和容器(Images and containers)4.容器和虚拟机(Containers and virtual machines)5. 设置你的docker环境5.1Test Docker version5.2Test Docker installation6.总结(Conclusion)1.前言自从201...

2020-03-08 16:29:35 184

原创 常见Java调试问题记录

Java调试问题记录问题1. No enclosing instance of type ReenterLockTest is accessible. Must qualify the allocation with an enclosing instance of type ReenterLockTest (e.g. x.new A() where x is an instance of Re...

2020-02-15 09:52:04 413

原创 SWT开发环境搭建

1. 序言学习java一段时间,前段时间用javafx做了几个工具用于简化软件开发中的一些简单重复工作。但javafx确实不怎么好用,就一直在找其他的GUI框架比如awt, swing,后面又看到Eclipse 的SWT。 Eclipse本身也是用SWT来写的,Elclipse也提供相关的GUI开发插WindowsBuilder来加速GUI界面开发。2. 下载源码包和例程源码2.1 查看Ec...

2020-01-21 18:16:32 922

原创 Java Fx开发基础

序言学习Java基础有一段时间了,想着怎么应用到实践中,自己开发些小工具应该是最好的java基础练习方法了,既然是工具的话,肯定会要有用户界面。因为基于java开发的主要的面向网络应用,基于Java的可用的GUI不多,JavaFx是Oracle推荐使用的可用于界面开发的GUI, 用来做小工具是不错的。Javafx安装关于如何在Eclipse上安装Javafx插件,网上有很多的教程,可参看下面...

2019-05-29 13:17:55 2058

原创 JSON基础

JSON初识JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集。JSON结构简洁和清晰, 易于人阅读和编写,同时也易于机器解析和生成,相对于XML网络传输效率更高,使得 JSON 成为理想的数据交换语言。JSON结构JOSN基于两种数据结构:JSON是一系列键值对的...

2019-05-21 14:56:19 172

原创 Java 8 IO流学习

Java IO流学习什么是Java IO流在Java中,一个可以按顺序读取字节的对象即为流,Java IO流是实现输入/输出的基础,InputStream, OutputStream是系列Java IO流程的基类。Inputstream: 斜体样式...

2019-05-10 16:59:48 998

空空如也

空空如也

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

TA关注的人

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