摘要:
1 前言 以gsv的sdk的应用代码为例,将应用代码从m0核移植到m1核的mcu上; 因为用的是hal库,所以互相移植修改的并不多;实际改个头文件就可以编译了; 虽然我hal库用的是m1核的hal库,但是实际上我直接啥也没改,跑在m4核的gdf303上也没啥问题; 2 修改项目名 修改.uprojx 阅读全文
摘要:
1 音视频接口 各代音视频接口:第一代CVBS、第二代S-Video、1987年第三代VGA、1999年第四代DVI、2002年第五代HDMI; 每种接口背后都有自己的历史背景,在浮浮沉沉中都将逐渐退出历史舞台; 1.1 CVBS 接口 CVBS:composite vedio boardcast 阅读全文
摘要:
1 C++ 1.1 什么是C++语言呢? C++语言是面向过程编程的高级语言, 同时也可以向高级语言一样面向对象编程,泛型编程; C++语言派生自C语言,所以C++语言可以向下兼容C语言;C++相比C,扩展了面向对象编程,泛型编程; C++语言大小写敏感,支持ANSI标准; G++编译器是将 gcc 阅读全文
摘要:
1 styles 样式 styles 样式是用来决定对象obj外观的一大类属性,大概是最重要最常见的一个属性,内容较多; obj可以拥有多个style属性,最新添加的属性优先级最高,子对象部分没有设置的属性(eg:text color)可以从父对象继承; obj 总是由一种或多种states和par 阅读全文
摘要:
1 序 PT2258为台湾普诚电子于2000年7月开发出的由iic总线控制的音量控制IC;音量调节范围[-79,0]dB,调节步长1dB; 2 工作原理 2.1 工作原理 PT2258内部集成了可编程电阻网络,通过对Vin进行分压处理后输出Vout,实现音量控制; 当音量放大倍数为0dB时,Vin= 阅读全文
摘要:
1 序 编码器型号为"黄海电子有限公司"的"EC11A-227";参数特性和ALPS的EC11B区别不大,EC11A性能较好; 出于图片规整考虑,本文截取ALPS的EC11B的datasheet来分析EC11A,推荐电路截取自"黄海电子"的"EC11B"; 2 编码原理 EC11编码器为增量式编码器 阅读全文
摘要:
1 前言 嵌入式常用软件的安装配置归纳; keilMDK,cubeMX, J-Flash, sourceInsight,vscode,codeblock,lvgl_simulator, EWRAM_IAR,mingw,,,,,, ubuntu,,,,,,, edid_980_manager,,,,, 阅读全文
摘要:
1 haversine公式 先放着,后续补充原理; 2 接口函数目的 前几天测试反馈了一条骑行记录的bug,实际记录和具体坐标对不上;骑行记录的数据又多,分析不直观; 实际gps坐标数据拿出来模拟仿真没什么问题,估计采样点还是哪里有问题把,先放放; 这几天没什么事,整了一个函数接口用来对预处理的gp 阅读全文
摘要:
1 quicklz quicklz是单片机上一个常见的压缩算法,具体原理没有文档和hash表的相关基础我就不去深究了; 只需要将fileSrc.txt放在桌面,代码可以使用vscode的mingw直接编译; 2 quicklz源码 quicklz源码就一个c文件一个h文件,标准库要求就一个<stri 阅读全文
摘要:
1 bluetooth 蓝牙协议 什么是蓝牙呢?蓝牙是频率为2.4GHz的特高频无线通讯标准;按协议制定的时间将其分为两种类型; 1.1 经典蓝牙BT:以点对点方式创建一对一通信;使用蓝牙3.0标准协议; 1.2 低功耗蓝牙BLE :以广播(一对多)和网格(多对多)等通信; 使用蓝牙4.0标准协议, 阅读全文
摘要:
1 NativeAbilityFwk框架 对于hi3321芯片的brandy sdk而言,ui的开发是基于NativeAbilityFwk应用框架; NativeAbilityFwk是基于穿戴产品的特点从鸿蒙原生Native中裁剪定制的轻量级UI; JSAbility由JavaScript编写;通过 阅读全文
摘要:
1 对象 object 1.1 对象 lv_obj_t 对象object:构建用户界面的基本单位,也称之为控件widgets;对于button,label,image,list等组件都可称之为对象; //lv_obj.h 对象结构体; typedef struct _lv_obj_t { const 阅读全文
摘要:
1 开始指南 要开始学习lvgl了,在使用之前还需要了解一些框架知识,/*这些内容较少不想另开随笔,就一并放这*/; github源码:LVGL (github.com) lvgl官方文档:Introduction — LVGL documentationGet started — LVGL doc 阅读全文
摘要:
1 IC卡分类 结合道客巴巴和百度,简单分类了一下; 可知北京握奇的psam卡属于接触式CPU卡,使用协议为iso7816;上海复旦微电子的CPU卡属于非接触式CPU卡,使用协议为iso14443; IC卡:IC(Integrated Circuit Card)集成电路卡;封装了谐振电路,微电子芯片 阅读全文
摘要:
1 互斥量 互斥量即互相排斥的信号量,是一种特殊的二值信号量;只能由持有线程释放,而信号量则可以由任何线程释放; 拥有互斥量的线程拥有互斥量的所有权,互斥量支持递归访问且能防止多线程优先级翻转; 1.1 线程优先级翻转问题 互斥量通过继承线程优先级,将持有互斥量的线程优先级提高到和挂载到suspen 阅读全文
摘要:
1 信号量 信号量是一种用于管理线程间资源关系的内核对象,线程可以获取或释放它从而达到同步或互斥的目的; 信号量可以运用在多种场合中,形成锁,同步(多个线程可访问同一资源),资源计数等关系,也能方便的用于线程与线程,中断与线程的同步中; 1.1 semaphore 信号量结构体 //rtconfig 阅读全文
摘要:
1 消息队列 消息队列是一种常用的线程间异步通讯方式; 消息队列能够接收来自线程或中断中不固定长度的消息,并把消息缓存在自己的内存空间中,供线程间进行异步通讯; 1.1 结构体定义 //rtconfig.h 源码默认注释掉未开启,用到消息队列的时候需要自己开启; #define RT_USING_M 阅读全文
摘要:
本文开始移植rtthread的代码到正点原子的板子上;参考资料为野火的教程,需要搭配野火教程使用; 使用源码是作为pack包放在arm-keil官网下载的nano3.0.3版本;nano版本精简方便解构;gittee上的master版本组件又多又杂不利于初学; 本来想用3.1.5版本源码的,但是移植 阅读全文
摘要:
rtthread中对于多线程切换是通过优先级表搭配优先级组进行调度的,优先级表中存储切换的上下线程节点,优先级组用来判断当前的最高优先级; rtthread在优先级表调度中,将需要切换的线程结构体地址和sp指针作为参数传递给了context环境切换函数; 实际上下文切换是在context环境中,通过 阅读全文
摘要:
1 systick中断处理函数 对于单片机而言,定时器的时钟节拍由systick提供,所以我们在此先记录一下systick中断处理函数; 在systick中断处理函数中对时钟节拍进行自加加,调用rt_timer_check( )对定时器进行扫描; //board.c 使能systick定时器;系统晶 阅读全文
摘要:
1 线程调度 rt_schedule rtthread中的线程切换是通过rt_schedule( )线程调度来实现的; rt_schedule( )线程调度 通过 rt_thread_ready_priority_group 搭配 rt_thread_priority_table 进行调度; 1.1 阅读全文
摘要:
1 微处理器系统 随着产品功能的增多,裸机系统不能够满足产品需求,引入RTOS实时操作系统的多线程管理,可以增加程序的稳定性逻辑性,便于管理; 2 rtos系统启动 正常的系统都是从main函数中启动,那么对于rtos而言。它是如何启动的呢? rtos使用了keil编译器的打补丁功能,将thread 阅读全文
摘要:
1 IIC 1.1 iic定义 iic全称inter integrated circuit,集成电路总线;为串行通信接口协议;通过SCL、SDA 2线进行板间通讯; 1.2 iic速度 iic标准规定在iic协议在快速模式下传输速率最高可达400Kbps,在高速模式下最高3.4Mbps; 1.3 i 阅读全文
摘要:
1 NVIC NVIC全称nested vectored interrupt controller,嵌套 向量 中断控制器;cm3的所有中断机制都由NVIC管理; 1.1 "向量" cm3自动初始化了中断响应事件与中断服务程序入口地址相对应的向量表,如下表所示; cm3中断响应后,cm3通过nvic 阅读全文
摘要:
1 STM32F1的复位方式 1.1 系统复位 作用:将RCC_CSR的复位标志、备份区域除外的所有reg值复位为复位值; 备份区域:LSE后备寄存器、RCC_BDCR、RTC的相关寄存器; 如果使用备用电池Vbat,那么VDD断电后,备份区域会使用Vbat备份; 1.1.1 NRST引脚上的低电平 阅读全文
摘要:
1 DMA DMA全称direct memory access,直接 内存 存取 外设; 作用:提供外设与存储器、存储器与存储器之间的高速数据传输; 特点:不占用CPU资源,能够大量高速处理数据提高效率; flash(代码运行区),SRAM,AHB,APB1,APB2外设均可作为访问的源或目标; D 阅读全文
摘要:
1 SysTick定时器 定义:systick为24位倒数计数器,产生的中断由由NVIC控制,使用的时候需要配置nvic优先级,默认优先级还挺高; systick时钟频率为AHB或AHB/8;时钟源直接来自AHB总线时钟; systick只需要使能自身中断就可以进入中断函数;普通外设既需要使能自身中 阅读全文
摘要:
1 半导体 二极管与三极管都是半导体器件,要想理解他们的物理工作原理,觉得开头还是应该提一下啥是半导体; 半导体分类 定义 导电因素 解释 本征半导体 相邻原子的价电子通过共价键连接; 电子和空穴的数量动态平衡 是纯净的单硅晶体半导体; 环境温度 载流子浓度受温度影响大,导电性能差; 可以做热敏,光 阅读全文
摘要:
1 下载协议 1.1 JTAG协议 JTAG全称 joint test action group,边界扫描系统协议;是调试芯片的通用标准协议; 1.2 SWD协议 SWD全称 serial wire debug,串行调试协议;也是调试芯片的通用标准协议; 2 SWJ-DP SWJ-DP全称 seri 阅读全文
摘要:
前言 复位之后,CPU首先根据boot引脚选择存储器重映射区域,该区域的地址重映射为地址偏移量为0; pc指针从地址偏移量为0的地址处开始执行;该地址烧录的代码是xx.s启动文件,也称bootloader; 启动文件主要分配了堆栈和向量表,然后跳转到SystemInit函数配置系统时钟,然后通过__ 阅读全文