ICode9

精准搜索请尝试: 精确搜索
  • 从结构体、内存池初始化到申请释放,详细解读鸿蒙轻内核的动态内存管理2021-07-05 15:02:04

    摘要:本文带领大家一起剖析了鸿蒙轻内核的动态内存模块的源代码,包含动态内存的结构体、动态内存池初始化、动态内存申请、释放等。 本文分享自华为云社区《鸿蒙轻内核M核源码分析系列九 动态内存Dynamic Memory》,原文作者:zhushy。 内存管理模块管理系统的内存资源,它是操作系统的核

  • MD5算法详解2021-06-28 19:32:41

    前面一篇,带大家对加密算法进行了鸟瞰,本篇主要谈md5算法的实现。 MD5:Message-Digest Algorithm 5(信息摘要5),确保信息的完整性。其算法是1992年公开的,那时我才几岁,鉴于大家对md5都很熟悉,且程序中经常应用,我就不再介绍了。我简单的介绍下设计者。其人是罗纳德·李维斯特,美国密码学家,后

  • Globalplatform TEE api介绍2021-06-21 15:02:43

    文章目录 1、TEE API介绍 2、Client API : CA与TA通信的API介绍 3、TEE API : TA系统调用TEE OS的API ★★★ 友情链接 : 个人博客导读首页—点击此处 ★★★ 1、TEE API介绍 TEE API分两种: 一类是CA与TA通信的API,实现方式就是应用程序调用libteec.so库,libteec.so库是由opt

  • [ARM-assembly]-汇编示例:c语言翻译成汇编2021-06-21 14:53:06

    ★★★个人博客导读首页—点击此处 ★★★ 示例1: int func_test(uint32_t a, uint32_t b, uint32_t *s) { *s = a + b; return 0; } 00000000002047a0 <func_test>: 2047a0: 0b010000 add w0, w0, w1 2047a4: b9000040 str w0, [x2] 2047a8: 52800000 mov w0, #0x0

  • Labview与c通过dll混合编程的一种实现方法2021-06-20 17:33:20

    工作需要做某平台产品上位机时,由于系列化原因,部分算法需要根据不同产品系列进行微调,为方便后期可可扩展性,遂将相关算法通过labview读取配置文件调用dll实现。故在此将实现方法记录备用。   开发环境: labview 32bit gcc version 8.1.0 (x86_64-win32-sjlj-rev0, Built by MinGW-W6

  • LiteOS多任务通信和同步(基于STM32F1)2021-06-19 09:59:08

    LiteOS+STM32F1实现多任务通信和同步实验 关于LiteOS操作系统 LiteOS是2015年华为网络大会上华为发布的敏捷网络3.0中的一个轻量级的物联网操作系统。         LiteOS操作系统配置文件 实现任务创建 2 个软件定时器,配置为周期模式,Timer1 每 1000ms 向队列中写入控灯 1 命

  • 带你剖析鸿蒙轻内核任务栈的源代码2021-06-09 12:02:50

    摘要:本文带领大家一起学习了鸿蒙轻内核的任务栈、任务上下文的基础概念,剖析了任务栈初始化的代码。 本文分享自华为云社区《鸿蒙轻内核M核源码分析系列七 任务及任务调度(1)任务栈》,原文作者:zhushy 。 我们本文开始要分析下任务及任务调度模块。首先,我们介绍下任务栈的基础概念

  • 带你剖析鸿蒙轻内核任务栈的源代码2021-06-09 11:53:40

    摘要:本文带领大家一起学习了鸿蒙轻内核的任务栈、任务上下文的基础概念,剖析了任务栈初始化的代码。本文分享自华为云社区《鸿蒙轻内核M核源码分析系列七 任务及任务调度(1)任务栈》,原文作者:zhushy 。我们本文开始要分析下任务及任务调度模块。首先,我们介绍下任务栈的基础概念。任务栈

  • 【资料分享】GPIO标准库文件详解2021-06-08 21:33:38

    写在前面,沉下心来看一遍,收获满满。 CSDN上看代码不舒服,建议复制到自己编译器上看。 /** ****************************************************************************** * @file stm32f10x_gpio.c * @author MCD Application Team

  • mcu_coret(系统定时器)2021-06-06 09:01:23

    1:初始化 如果coret_freq=24_000_000Hz,CONFIG_SYSTICK_HZ=100,通过以下初始化,可以知道coret_freq / CONFIG_SYSTICK_HZ = 多少次后进入中断;CONFIG_SYSTICK_HZ为csi_tick变量增加一次的频率(时间)=100hz(10ms) csi_coret_config((soc_get_coret_freq()/ CONFIG_SYSTICK_HZ), CORET

  • 布隆过滤器2021-06-04 22:58:12

    #include "bloomfilter.h" #include <stdio.h> #define MAX_ITEMS 6000000 // 设置最大元素个数 #define ADD_ITEMS 1000 // 添加测试元素 #define P_ERROR 0.0001 // 设置误差 int main(int argc, char** argv) { // 1. 定义BaseBloomFilter

  • 踩准时钟节拍、玩转时间转换,鸿蒙轻内核时间管理有妙招2021-06-04 11:54:08

    摘要: 本文带领大家一起剖析了鸿蒙轻内核的时间管理模块的源代码。时间管理模块为任务调度提供必要的时钟节拍,会向应用程序提供所有和时间有关的服务,如时间转换、统计、延迟功能。本文分享自华为云社区《鸿蒙轻内核M核源码分析系列六 时间管理》,原文作者:zhushy 。本文会继续分析 Tic

  • STM32(三十四)向flash中写64字数据2021-05-29 14:03:27

        #include "flash.h" //功能:向第四扇区写数据 void Flash_Init(void) { uint32_t data[64] = {0};//64字 uint32_t i=0; for(i=0;i<64;i++) { data[i] = 0x00100000 +i; } //解除写保护 FLASH_Unlock(); //清除上一次出现的错误码 FLASH_ClearFlag(FLASH_FLA

  • 狄克斯特拉算法-自带注释2021-05-26 12:00:44

    #include <cstdio> #include <iostream> #include <list> #include <stack> #include <tuple> #include <vector> #include <cassert> using std::list; using std::tuple; using std::vector; using std::stack; using std::prin

  • STM32定时器3配置时钟的坑2021-05-09 22:02:15

    STMf1的配置TIM3 我用的是原子的F1精英版,配置定时器3的时候出了点问题 问题描述 这里是主函数,在TIM3_Int_Init函数中,4999是重装载值,3599是预分频系数 计算: 如果APB1给TIM的时钟是36M的话,我使用3599预分频之后,那分频之后的频率就是 36M/3600=10K (因为是从零开始计数,所以计算使用3

  • c++当中ip字符串转int2021-05-09 12:03:25

    #include <iostream> #include <sstream> #include <map> #include <list> #include <vector> #include <string> #include <stdio.h> #include <string.h> #include <stdlib.h> using namespace std; /* 处理IP字符串

  • 鸿蒙轻内核M核源码分析系列六 任务及任务调度(1)任务栈2021-05-08 14:01:14

    目录: 1、 TaskContext上下文结构体定义 2、任务栈相关函数 3、任务进入退出函数 4、小结 继续分析鸿蒙轻内核源码,我们本文开始要分析下任务及任务调度模块。首先,我们介绍下任务栈的基础概念。任务栈是高地址向低地址生长的递减栈,栈指针指向即将入栈的元素位置。初始化后未使用过的

  • 模块三 GO语言实战与应用-原子操作(上)2021-05-08 07:32:23

    我们在前两篇文章中讨论了互斥锁、读写锁以及基于它们的条件变量,先来总结一下。 互斥锁是一个很有用的同步工具,它可以保证每一时刻进入临界区的 goroutine 只有一个。读写锁对共享资源的写操作和读操作则区别看待,并消除了读操作之间的互斥。 条件变量主要是用于协调想要访问共享资

  • redis数据结构-intset2021-05-05 13:34:02

    整数集合是纯整数时set的底层实现 typedef struct intset { uint32_t encoding; uint32_t length; int8_t contents[]; } intset; encoding表示数组内的变量的类型,一共三个枚举值(int16,int32,int64) length表示集合中元素个数 contents存放数据 整数集合的特点 有

  • VScode uint32_t 不是类型名 问题处理2021-05-03 18:01:42

    VS Code提示 uint32_t 不是类型名,一脸懵,在IAR工程都正常的,不懂找度娘去 总结如下: 1、c_cpp_properties.json里defines增加 “__CC_ARM”,未解决我的问题 2、c_cpp_properties.json里defines增加 "STM32F103xB", 完美解决 // (此处根据工程使用的MCU确定) 新问题出现,结构体定义变

  • STM32F429--LTDC显示字符与图形2021-04-29 15:35:00

    硬件平台:正点原子阿波罗F429 软件工具:STM32CubeMX 5.6.0 开发IDE: SW4STM32 首先在STM32CUBEMX配置SDRAM,DMA2D DMA2D 的用法DMA2D是AHB总线矩阵上的主设备,将图形数据传输到内存。建议使用DMA2D来为CPU减荷。DMA2D执行四项基本任务:• 填充独特颜色的矩形形状。• 将一帧或一帧的矩

  • N76E003 串口的时候用和printf初始设置2021-04-29 11:31:57

    N76E003的共两个串口。每个串口有多种工作模式。具体可以看规格书以及BSP包例程。为方便日后使用。做简要的总结。 1.初始化 开发中。常用的是串口模式1.其初始化代码如下: 因为串口的发送需要用到定时器(产生波特率需要用到)。UART0可选择有TIMER1和timer3。UART1只有TIMER3

  • dpdk 读写锁2021-04-29 11:03:39

        typedef struct { volatile int32_t cnt; /**< -1 when W lock held, > 0 when R locks held. */ } rte_rwlock_t;   dpdk在实现读写锁的时候,使用了原子锁机制读锁加锁的时候,判断cnt是否小于0,如果是,表示当前处于写加锁状态,则需要把自己pause,否则直接使用原子操作cmp

  • ST77903 QSPI + STM32H743 + RTThread + LVGL2021-04-27 10:57:28

    因为之前的H750内部空间太小,无法放入UI资源,所以这次直接买了块NUCLEO-H743ZI2,驱动上做了指令1LANE和4LANE的兼容 驱动文件如下: #include "board.h" #include "sram.h" #include "rtthread.h" #include "rtdevice.h" #include "lcdqspi.h" #define DBG #define D

  • 痞子衡嵌入式:kFlashFile v1.0 - 一个基于Flash的掉电数据存取方案2021-04-17 20:56:31

    痞子衡最近在参与一个基于 i.MXRT1170 的项目,项目有个需求,需要在 Flash 里实时保存一些关键数据(初步设 512 bytes),掉电能恢复。这些数据在访问方式上要友好,最好是很简单的 API 接口,上层无需操心关键这些数据在 Flash 里是如何存储以及具体存储在什么位置,只需在意关键数据保存和读取

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有