- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 RT-Thread-ulog输出到flash-基于FlashDB
ulog输出到flash-基于FlashDBULOG_TSDB搭建详解一、依赖二、实现1、后端设备初始化2、TSDB功能实现①tsdb初始化②追加日志数据③查询日志数据全部查询根据日期区间查询④清空日志数据三、测试ULOG_TSDB搭建详解一、依赖1、打开FAL,挂载好片内/片外Flash,设置分区表2、打开FlashDB、ulog组件3、使能硬件RTC二、实现1、后端设备初始化主要实现原理:把tsdb作为ulog输出的后端设备,实现保存日志数据到flash中仿照console_be.
2021-03-13 20:56:12 2505 2
原创 嵌入式软件面试合集
嵌入式软件面试【合集】嵌入式C语言TCP/IP前言“持续更新ing++”标题党实????,更新频率或许不高,但是一定会坚持(为了以后的高薪offer!)相信努力都能获得回报,坚持终身学习的理念,征途漫漫,唯有奋斗!大家的点赞、收藏是我源源不断的动力!评论区欢迎大家一起来讨论啊~嵌入式C语言1、内存四区堆区:一般由程序员手动释放,若程序员不释放,程序结束时可能会由操作系统释放,malloc/free、new/delete都是对堆区进行操作栈区:由编译器自动释放,主要存放程序局部变量、函
2021-03-12 12:17:48 1647
转载 RT-Thread FAL 组件使用
RT-Thread FAL 组件使用FAL 组件开源项目地址:https://gitee.com/RT-Thread-Mirror/fal/tree/masterFAL 组件是 RT-Thread 提供的一个操作 Flash 的抽象应用,与 RT-Thread 无依赖,可以裸机使用,EasyFlash 就是在此基础上运行的。以下介绍如何通过 RT-Thread Studio 来使用 FAL 组件。首先在设置文件中打开 FAL 组件,并勾选“ FAL 使用 SFUD 驱动程序”,这样就可以使用 SFU
2021-02-24 08:22:08 1414
原创 RT-Thread传感器驱动框架详解(框架介绍+使用方法+源码理解)
RT-Thread传感器驱动框架使用详解1、整体框架2、使用步骤①ENV工具配置②Sensor框架初始化③创建线程3、源码追踪由于传感器种类众多,RT-Thread官方设计了传感器框架,为上层提供统一的操作接口,提高上层代码的可重用性;简化底层驱动开发的难度,只要实现简单的 ops(operations: 操作命令) 就可以将传感器注册到系统上。本博客中2、使用步骤处源码均出自RT-Thread官网开源项目:分布式温度监控系统1、整体框架Sensor 驱动框架为上层用户提供了标准 devic
2021-02-03 14:39:01 5298 2
原创 RT-Threadbsp移植
移植rt-thread-master中BSP到其他路径下开发1、前言2、文件移植3、修改配置文件4、总结1、前言小白入门RTT,感觉RTT中文社区用得是真的舒服,跟着视频熟悉了ENV的基本操作,也从官网下载了各种芯片的BSP(rt-thread-master),寻思试着把项目路径移动到其他地方进行开发,结果连连踩坑…赶时间的朋友可以直接跳到4、总结看注意事项!2、文件移植寻思着先把rt-thread-master中其他文件移动到目标路径,在把BSP文件中你所需要的芯片型号移动过来就可以了原路径
2021-01-27 23:14:23 517
原创 RT-Thread内核基础介绍
RT-Thread内核基础一、线程调度二、时钟管理三、线程间同步四、线程间通信五、内存管理六、I/O设备管理摘自RT-Thread官方文档《um4003-rtthread-programming-manual》链接: RTT官方文档.一、线程调度✨线程是 RT-Thread 操作系统中最小的调度单位✨线程调度算法是基于优先级的全抢占式多线程调度算法即在系统中除了中断处理函数、调度器上锁部分的代码和禁止中断的代码是不可抢占的之外,系统的其他部分都是可以抢占的,包括线程调度器自身✨相同优先级的
2021-01-14 21:58:12 391
原创 一文读懂STM32时钟树(时钟系统)(以STM32F767为例)
STM32时钟系统导读时钟系统的构成总结导读我在刚开始接触STM32/单片机的时候看到它的时钟系统/时钟树,都会感觉懵懵的,这是个啥?它想要告诉我哪方面的数据?特此一文记录一下学习心得。时钟系统——MCU的脉搏,也可以理解为外设的开关,不打开它外设就没办法运行,每个外设都有其对应的时钟线(APBx、AHBx)。MCU的资料文档一般都会有芯片的时钟系统框图????STM32F767IGT6时钟树51单片机CH552G时钟框图时钟系统的构成时钟源系统时钟分/倍频器外设F7
2021-01-13 21:24:29 2275
原创 ESP8266_STA模式驱动详解
ESP8266_STA模式驱动详解1、模块测试①测试模块是否启动成功②设置STA模式③连接wifi④连接服务器⑤通信测试⑥退出发送模式2、驱动思路前言:虽然网上已经有了许许多多ESP8266的教程和代码,但是自己写驱动、调试的时候却还是磕磕碰碰的,希望自己踩过的坑会对大家有帮助。1、模块测试ESP8266模块到手之后,一定要进行测试!测试!测试,因为这个测试可以让你知道清晰地知道模块从上电后都干了些啥,让你完全掌握模块的入网过程,后面的驱动就是根据这个过程来写的。测试所需工具:①串口调试助手
2020-12-02 13:15:13 1803
原创 C++多态理解及图解虚函数表
C++ 多态详解及常见面试题什么是多态?什么是多态?多态就是不同对象对同一行为会有不同的状态。(举例 : 学生和成人都去买票时,学生会打折,成人不会)实现多态有两个条件:一是虚函数重写,重写就是用来设置不同状态的二是对象调用虚函数时必须是指针或者引用ps:没有这两个条件无法构成多态,很多笔试题都会利用这个陷阱让你上当!实际上,代码上体现(动态)多态就是当父类指针指向子类对象,然后通过父类指针能调用子类的成员函数。...
2020-10-21 11:21:27 354
原创 干货满满~Linux系统启动(内含名词解析)
Linux系统启动过程一、启动过程二、名词解释一、启动过程1、加载 BIOS 的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置2、读取并执行第一个开机装置内MBR的bootLoader3、依据 bootloader的设定加载 Kernel4、Kernel开始侦测硬件与加载驱动程序 (初始化Kernel)5、把Kernel挂载到根文件系统上6、启动完成二、名词解释BIOS全称"Basic Input Output System",中文名称是"基本输入输出系统"。它是一组固化到计算
2020-10-08 10:06:42 205 1
转载 CC2530/Zigbee协议栈之同时使用两个串口
zigbee协议栈同时使用两个串口原文链接: how-to-use-two-uart-ports-in-cc2530.How to use two UART ports in CC2530 Z-StackThe following steps show how to use two UART ports in CC2530 Z-Stack①Define HAL_UART=TRUE, HAL_UART_ISR=1, and HAL_UART_DMA=2 in compile options.(在Pro
2020-08-18 16:32:28 1774 1
原创 CC2530/Zigbee协议栈外部中断配置详解
CC2530/Zigbee协议栈配置外部中断一、I/O端口二、配置寄存器三、中断处理函数一、I/O端口1、在CC2530芯片中,其I/O口用作通用 I/O 时,引脚可以组成 3 个 8 位端口,端口 0、端口 1 和端口 2,表示为 P0、P1 和 P2。其中,P0和 P1 是完全的 8 位端口,而 P2 仅有 5 位可用。所有的端口均可以通过 SFR 寄存器 P0、P1 和 P2 位寻址和字节寻址。每个端口引脚都可以单独设置为通用 I/O 或外部设备 I/O。2、用作输入时,通用 I/O 端口引脚可
2020-08-11 17:33:46 2671 1
原创 CC2530/Zigbee协议栈之OSAL事件触发详解——保姆级别的入坑教程
ZIGBEE/CC2530之OSAL事件创建、处理详解一、OSAL事件二、创建OSAL事件1、定时器2、消息传递三、OSAL事件处理一、OSAL事件二、创建OSAL事件1、定时器osal_start_timerExosalAddTimerosalFindTimerosalTimeUpdateosalTimerUpdateosal_set_event( freeTimer->task_id, freeTimer->event_flag );2、消息传递osal_msg_all
2020-07-31 20:42:27 5931 5
原创 【算法】C++快排——通俗易懂的理解方式
C++快速排序(Quick sort)一、排序算法二、快排思路1.思路:分治、“挖坑”2.步骤三、测试代码一、排序算法排序算法大体可分为两类:一种是稳定的排序算法,主要有:冒泡排序,插入排序,归并排序另一种则是不稳定的排序算法,时间复杂度可以达到O(n),主要有:选择排序,希尔排序,堆排序,快速排序快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个元素要O(nlogn)次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他O(nlogn)
2020-07-11 22:15:15 2776 1
原创 【算法】C++动态规划+滚动数组(面试极其加分的代码)
动态规划解题步骤思路例题解题步骤动态规划解题步骤:确定原问题与子问题确认状态,dp[i]数组的意义确认边界状态的值确认状态转移方程思路看到OJ题求最值,一般使用贪心或者动态规划。如果贪心不能解而且原问题规模可缩小,可用动态规划求解先把原问题的规模缩成最小的子问题,确定边界逐步扩大子问题,并且通过前面步骤的子问题的解来求最新子问题的解当子问题规模扩大为i时,可推出状态转移方程例如:原问题dp[i]的解=子问题dp[i-1]的解+子问题dp[i-2]的解d
2020-07-06 22:07:28 1826 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人