- 博客(109)
- 资源 (1)
- 收藏
- 关注
原创 华为LiteOS内核实战教程内存管理(3)重新分配指针的动态内存-osal_mem_demo.c
/*使用osal接口需要包含头文件*//*动态内存开发流程:1.配置: LOSCFG_MEMORY_BESTFIT: LOSCFG_KERNEL_MEM_SLAB:2.初始化:3.申请任意大小的动态内存:4.释放动态内存静态内存开发流程:1、规划一片内存区域作为静态内存池。2、系统内部将会初始化静态内存池。将入参指定的内存区域分割为N块(N值取决于静态内存总大小和块大小),将所有内存块挂到空闲链表,在内存起始处放置控制头。3、系统内部将会从空闲链表中获取第一个空闲块,并返回该块的用
2022-04-03 16:00:07 285
原创 华为LiteOS内核实战教程内存管理(2)熟悉osal_realloc-osal_mem_demo.c
/使用osal接口需要包含头文件//*动态内存开发流程:1.配置:LOSCFG_MEMORY_BESTFIT:LOSCFG_KERNEL_MEM_SLAB:2.初始化:3.申请任意大小的动态内存:4.释放动态内存静态内存开发流程:1、规划一片内存区域作为静态内存池。2、系统内部将会初始化静态内存池。将入参指定的内存区域分割为N块(N值取决于静态内存总大小和块大小),将所有内存块挂到空闲链表,在内存起始处放置控制头。3、系统内部将会从空闲链表中获取第一个空闲块,并返回该块的用户空间地址
2022-04-03 15:37:47 329
原创 华为LiteOS内核实战教程内存管理(1)-osal_mem_demo.c
/*使用osal接口需要包含头文件*//*动态内存开发流程:1.配置: LOSCFG_MEMORY_BESTFIT: LOSCFG_KERNEL_MEM_SLAB:2.初始化:3.申请任意大小的动态内存:4.释放动态内存静态内存开发流程:1、规划一片内存区域作为静态内存池。2、系统内部将会初始化静态内存池。将入参指定的内存区域分割为N块(N值取决于静态内存总大小和块大小),将所有内存块挂到空闲链表,在内存起始处放置控制头。3、系统内部将会从空闲链表中获取第一个空闲块,并返回该块的用
2022-04-03 14:39:37 1312
原创 华为LiteOS互斥锁任务抢占-osal_semp_demo
#include <osal.h>#define USER_TASK1_PRI 12 //低优先级#define USER_TASK2_PRI 11 //高优先级uint32_t public_value = 0;osal_mutex_t public_value_mutex;//任务1:static int user_task1_entry(){ while (1) { if (true == osal_mutex_lock(public_valu
2022-04-02 17:20:31 494
原创 华为LiteOS互斥锁-实现互斥锁功能-osal_mutex_demo
目标互斥锁的概念:通过互斥锁的概念,对互斥锁有整体的认识。运作原理:掌握互斥锁运作的原理、深入领悟互斥锁的作用。使用场景:了解互斥锁的使用场景,增加互斥锁的实用性。开发流程:互斥锁开发流程,实现互斥锁功能。内容1:互斥锁简介互斥锁的概念:互斥锁的概念:1、互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。2、任意时刻互斥锁的状态只有两种:开锁或闭锁。3、当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。4、当该任务释放时,该互斥锁被开锁,
2022-04-02 16:43:21 379
原创 华为liteOS任务创建-osal_task_demo.c
#include <osal.h>#define USER_TASK1_PRI 12#define USER_TASK2_PRI 11uint32_t user_task1_id = 0;uint32_t user_task2_id = 0;static int user_task1_entry() //任务1{ int n = 0; while (1) { for (n = 0; n < 5; n++) {
2022-04-02 14:05:06 638
原创 华为liteOS信号量学习删除信号量和退出任务-osal_semp_demo.c
重点理解退出的机制:先删除信号量,再退任务if (uwRet == true) printf("task 2 access a semp OK!\r\n"); else //创造出现失误的条件 printf("task 2 access a semp ERROR!\r\n"); if(sum++>=5) { //删除信号量,信号索引ID osal_semp_
2022-04-02 14:00:00 257
原创 华为liteOS信号量学习创建、释放、申请-osal_semp_demo.c
#include <osal.h>#define USER_TASK1_PRI 12#define USER_TASK2_PRI 11osal_semp_t sync_semp;/*1、信号量(Semaphore)是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问。常用于协助一组相互竞争的任务来访问临界资源。2、在多任务系统中,各任务之间需要同步或互斥实现临界资源的保护,信号量功能可以为用户提供这方面的支持。3、通常一个信号量的计数值用于对应有效的资源数,表示剩下的可
2022-04-02 10:55:54 547
原创 C语言生成JSON格式字符串对接华为物联网云平台
#include <stdio.h>#include <stdlib.h>char t_json[300];int main(){ /* C_JSON生成报文格式; { "services": [{ "service_id": "Device", "properties": {"DeviceID": 10}
2022-03-09 14:31:40 6203
原创 #define CCM ((CCM_Type *)CCM_BASE)+#define 声名常量
#include <stdio.h>#include <stdlib.h>//结构体化寄存器,并将寄存器地址定义为结构体指针//(1)编写外设结构体:我定义了一个结构体,结构体里的变量用于存放什么typedef struct{ //volatile的意义为什么:需要搞清楚 volatile unsigned int CCR; volatile unsigned int CCDR;}CCM_Type;//(2)定义寄存器的基地址#define C
2022-01-17 14:18:01 803
转载 双色球彩票
import requestsfrom fake_useragent import UserAgentfrom lxml import etreeurl = 'http://datachart.500.com/ssq/'response = requests.get(url, headers={"User-Agent":UserAgent().chrome})#解析函数e = etree.HTML(response.text)#使用的什么提取软件好方便啊date_times = e.xp
2021-12-30 10:36:09 141
转载 【Python爬虫案例】全套爬虫案例+数据可视化项目汇总零基础入门全套爬虫案例-案例六 污言污语
#learner:gaozhenming#公众号:easycoder#software:PyCharm"""文件说明: 采集污言污语保存到 整体思路:网址获取源代码,容器获取文本,不断的访问去拿到数据 整体思路:通过多次访问 https://www.nihaowua.com/ 获取article里面的文本内容,保存到本地 思路拆解: 1 建立一样的网络链接 2 获取网页源代码 3 解析网页源码,提取 污言污语
2021-12-20 11:31:48 282
转载 【Python爬虫案例】全套爬虫案例+数据可视化项目汇总零基础入门全套爬虫案例-案例五 豆瓣
视频源自B站,讲解得非常好,感谢星越编程,B站视频网址如下:https://www.bilibili.com/video/BV1zg411A731?p=5Pycharm源选清华的,比较快#learner:stupid_gao#公众号:easycoder#software:Pycharm"""文件说明 豆瓣top250电影采集 目标需求:采集top250电影的名称以及对应的豆瓣地址 思路拆解: 1 寻找目标数据源 2 建立链接
2021-12-16 16:47:04 285
转载 【Python爬虫案例】全套爬虫案例+数据可视化项目汇总零基础入门全套爬虫案例-案例四 表情包
视频源自B站,讲解得非常好,感谢星越编程,B站视频网址如下:https://www.bilibili.com/video/BV1zg411A731?p=5Pycharm源选清华的,比较快#learner:stupid_gao#公众号:easycoder#software:Pycharm"""文件说明:表情包获取 爬虫: 第一步:寻找目标数据源 第二步:分析网页结构 第三步:建立链接、解析数据 第四步:保存数据 网
2021-12-16 12:00:24 209
转载 【Python爬虫案例】全套爬虫案例+数据可视化项目汇总零基础入门全套爬虫案例-案例三
视频源自B站,讲解得非常好,感谢星越编程,B站视频网址如下:https://www.bilibili.com/video/BV1zg411A731?p=4Pycharm源选清华的,比较快#author:lanqiao#公众号:easycoder#software:Pycharm"""文件说明:链家网二手房采集 + 可视化目标网站:https://bj.lianjia.com/ershoufang/分析思路: 通过网址获取网页源码,从网页源码提取对应的房价以及小区名称,最终实现可视
2021-12-15 11:22:37 1779
转载 【Python爬虫案例】全套爬虫案例+数据可视化项目汇总零基础入门全套爬虫案例--转载
B站视频,老师讲的非常好–推荐https://www.bilibili.com/video/BV1zg411A731?p=2#author:gaozhenming#公众号:easycoder#software:Pycharm"""文件说明: 腾讯网源码获取 什么是爬虫: 爬虫应用:百度 goole sougou-->全量爬虫-->数据非常广,不太精准 聚焦爬虫,主题爬虫--->抓某个特定网站图片、根据用户的需求采集特定的数据的地
2021-12-14 16:34:46 599
转载 转载-Visual Studio 环境搭建不错的网址C/C++/PYTHON/LUA
对这位YanWennian同学表示感谢,非常详细,我蹭一下好帖。多平台传送门:https://blog.csdn.net/yanwennian/category_9563693.htmlLUA搭建平台https://blog.csdn.net/yanwennian/article/details/103480938
2021-11-25 14:01:32 100
原创 LUA串口接收转自串口液晶屏广州大彩
5.3 LUA 串口接收LUA 中自由串口协议中,接收回调函数为 on_uart_recv_data(packet)函数名: on_uart_recv_data(packet)形参: packet, 下表从 0 开始,表示接收的字节数组5.3.1 帧头+帧尾以帧头 0x5A、 帧尾 0xA5 0x5A 0xA5 0xA5、 含 CRC16 校验为例,屏幕对该帧结构做以下解析示例。 源码可参考《1.帧头+帧尾(Header+End) .rar》基本思路:1. 触发 on_uart_recv_d
2021-11-24 16:48:38 2147
转载 LC 859 亲密字符串(粘贴自其他人)
亲密字符串摘自,其LC每日一题,坚持把,虽然是粘贴代码,自己没有敲出来。网址如下:https://leetcode-cn.com/problems/buddy-strings/bool buddyStrings(char * s, char * goal){ if(strlen(s) != strlen(goal)) return false; int digit_s[26]; memset(digit_s, 0, sizeof(int) * 26); int dig.
2021-11-23 15:17:37 84
原创 RT-THREAD官网内核视频笔记十六讲(13-16)V1.0(箭指320)
4个字节,一个指针,邮箱struct rt_mailbox{ struct rt_ipc_object parent;//IPC继承 rt_uint32_t *msg_pool;//指针/消息缓存区 rt_uint16_t size; //邮箱容量 rt_uint16_t entry; //数目 rt_uint16_t in_offset; //进出便宜量 rt_uint16_t out_offset; rt_uint16_t suspend_sender_thread;//
2021-10-20 14:10:40 180
原创 RT-THREAD官网内核视频笔记十六讲(1-12)V1.0(箭指320)
视频摘自https://www.rt-thread.org/page/video.htmlhttps://www.bilibili.com/video/av79513262?p=1第二讲 MDK裸机系统动态内存配置和使用board.c -> rt_system_heap_init((void)*HEAP_BEGIN,(void*)HEAP_END)动态内存空间 64K RAM ->动态内存空间Image$$RW_IRAM1$$ZI$$limit内存起始地址Map文件 : RW
2021-10-14 16:07:59 212
原创 RT-THREAD官网视频内核入门学习笔记摘抄整理
学习视频网址如下:https://www.rt-thread.org/page/video.html此部分为非视频部分:系统线程:图空闲线程、主线程一个线程要成为可执行对象,就必须由操作系统的内核来为他创造一个线程。初始化和脱离线程线程管理 类别分为 (1)系统线程(2)用户线程工作机制:线程控制块线程的重要属性,线程栈,状态。时间管理:时间节拍。定时器管理:(1)硬件定时器HARD_TIMER(2)软件定时器SOFT_TIMER定时器控制块:rt_timer定时器管理方式:void
2021-10-14 11:59:15 241
原创 链栈基本操作(入栈和出栈)C语言详解
#include <stdio.h>#include <stdlib.h>//链栈基本操作(入栈和出栈)C语言详解//通过采用头插法操作数据的单链表实现了链栈结构,这里给出链栈及基本操作的C语言完整代码://链表中的节点结构typedef struct lineStack{ int data; struct linkStack *next;}lineStack;//stack 为当前的链栈,a表示为入栈元素lineStack *push(lineSta
2021-10-11 10:33:47 4005
原创 顺序栈基本操作(入栈和出栈)C语言详解
#include <stdio.h>#include <stdlib.h>/* 顺序栈基本操作(入栈和出栈)C语言详解 栈的具体实现(1)顺序栈(2)链栈 栈的应用(1)回退 (2)框号应用问题 (3)进制转换 顺序栈的基本操作: 顺序表中设定一个实时指向的栈顶元素结构的变量。 设置栈顶为top return top top初始值为-1 入栈top +1 出栈top -1*///元素进栈int push(int
2021-10-11 08:52:55 6249
原创 C语言实现循环队列(未写完)
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define BUF_SIZE 8#define true 1#define false 0//具体如何实现,我会在下面通过代码实现//看看这一个结构体占多少个字节:*BUF 4个字节 int指向两个字节typedef struct queue{ int *BUF; int front; int rear}QUEUE
2021-10-09 15:36:57 81
原创 HJ6 质数因子(C语言)
HJ6 质数因子描述功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )最后一个数后面也要有空格输入描述:输入一个long型整数输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ long int n;
2021-09-22 08:43:43 896
原创 华为机考(中等)-HJ5进制转换-C语言
描述写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。输入描述:输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。输出描述:输出该数值的十进制字符串。不同组的测试用例用\n隔开。#include <stdio.h>int main(){ char buf[1024]; int count,temp; while(scanf("%s
2021-09-18 08:57:53 251
转载 LC字符串转换为整数(C语言实现)
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,“123” -
2021-09-07 10:18:08 237
转载 [LeetCode] 204.计数质数(Easy)C语言题解
详细参考网址如下:https://blog.csdn.net/qq_41979043/article/details/89031285int countPrimes(int n){ int count = 0,s = sqrt(n); int *arr = malloc(sizeof(int)*n); if(n>2) { for(int i=2;i<n;i++) arr[i]=1; for(int i=2
2021-09-05 21:04:33 93
原创 链表的基本操作(C语言)详解(摘取自C语言学习网2.5)
链表的基本操作(C语言)详解#include <stdio.h>#include <stdlib.h>typedef struct Link{ int elem; struct Link *next;}link;link *initLink();void display(link *p);//显示链表//链表插入的函数,p是链表,elem是插入的结点的数据域,add是插入的位置link *insertElem(link*p,int elem,int
2021-09-03 10:32:46 298
原创 LC 回文链表学习记录(摘自Leedcode官方题解)
234. 回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。官方题解:方法一:将值复制到数组后的双指针法即:双指针比较两端元素,并向中间移动。分为以下两个步骤:1.复制链表值到数组列表中。2.使用双指针法判断是否为回文。第一步:遍历链表将数值赋值到数组链表中。CurrentNode指向当前节点,每次迭代向数组添加currentNode.val并更新currentNode = currentNode.next ,当c
2021-09-01 15:23:14 80
转载 LC反转链表(C)
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?看了很多方法:重要推三指针法和迭代法:方法一:三指针法NULL ->pA->pB->pTempstruct ListNode* reverseList(struct ListNode* head){ struct ListNode *pA = NULL; struct ListNode *pB = head; struct ListNode *
2021-08-30 14:55:19 112
原创 LC删除链表的倒数第N个节点(C)待补充
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn2925/这个算法主要考察以下几个知识点,可惜我还没有学透,只能参考别人代码。重点考察的知识点为:双指针或者快慢指针方法,先把参考代码放上面,后续会做补充。/** * Definition for singly-linked list. * struct Li
2021-08-26 14:13:05 86
原创 LC字符串中的第一个唯一字符(C语言实现)
字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = “leetcode”返回 0s = “loveleetcode”返回 2//此方法不为唯一解,刷二遍的时候会补充思路:(1)申请ASCII码数量的空间,百度查ASICC码表为256个,并给所有数值初始化为0(2)遍历字符串S,出现每个值都到对应的ASICC码表去+1(3)遍历s[i]的值在judge[]数组中的值为多少,若为1,则满足。要求#include <
2021-08-23 09:47:46 360
原创 七种冒泡法C语言实现未完成
#include <stdio.h>#include <stdlib.h>void bubbleSort_Two(int R[],int length);//1.冒泡排序(Bubble Sort)/*这是一个常用算法总结的程序包括1.冒泡排序(Bubble Sort)2.选择排序(Selection Sort)3.插入排序(Insertion Sort)4.希尔排序(Shell Sort)5.归并排序(Merge Sort)6.堆排序(Heap Sort)7
2021-08-20 16:59:35 108
原创 C语言时间提取与转换
#include <stdlib.h>#include <stdio.h>typedef struct{ unsigned char DeviceID[10];//IMEI unsigned char date[10]; unsigned char time[10]; int tempature; int humidity; int voltage; int current; float longitude; float latigu
2021-07-30 10:47:22 529
原创 sscanf学习
#include <stdio.h>#include <stdlib.h>typedef struct{ unsigned char DeviceID[10];//IMEI unsigned char date[50]; unsigned char time[50]; int tempature; int humidity; int voltage; int current; float longitude; float latigu
2021-07-29 13:41:28 96
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人