自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (5)
  • 收藏
  • 关注

原创 11 开源鸿蒙OpenHarmony轻量系统源码分析

之前单独的LiteOS是通过Makefile编译的,当前的开源鸿蒙LiteOS-M和LiteOS-A是通过gn和ninja编译的。Gitee官方只介绍了LiteOS-M的gn + ninja编译的流程,针对M3使用Keil编译的流程可能要参考社区代码由此可知,开源鸿蒙轻量系统只是简单的由LiteOS-M内核 + 一些芯片厂商的驱动组成LiteOS-M 编码规范。

2024-03-28 15:21:49 877

原创 10 开源鸿蒙中芯片与开发板对应的源码(硬件相关的部分)

因为硬件各种各样,为了学习方便,这里选择几个ARM核的QEMU模拟器(不使用硬件,使用虚拟开发板)开源鸿蒙通过平台仓和芯片仓存放指定芯片和指定开发板的代码,硬件相关的代码和纯逻辑代码是分开存放的。verdor芯片仓的开发板配置。device芯片仓的源码和配置。

2024-03-20 10:39:43 904

原创 9 开源鸿蒙OpenHarmony上电的第一行代码,boot代码简述

本来芯片上电后的第一行代码应该是能在源码中看到的,但是OpenHarmony中使用了ARM的CMSIS官方库,也就是说上电时的第一行代码已经融合进编译器里面去了,所以你看不到,只能看到第二行代码,那就是 Reset_Handler() 复位中断函数。内核代码具体的细节,ARM Cortex-M可以参考LiteOS-M,ARM Cortex-A可以参考LiteOS-A或者Linux内核。上电的第一行代码是硬件复位中断的入口,也就是RAM零地址的代码,属于boot代码的一部分。

2024-03-12 13:59:05 392

原创 8 OpenHarmony开源鸿蒙build编译模块的原理和系统配置讲解

【代码】8 OpenHarmony开源鸿蒙build编译模块的原理和系统配置讲解。

2024-03-12 10:06:10 981

原创 7 BUILD.gn文件怎么写,Gn + Ninja编译一个Hello world程序的例子Demo

cd examples/simple_build/ 下载源码后进入其中的子目录。这是一个简单的BUILD.gn配置文件。这是Gn官方的例子,在Gn的源码里面。ls 先看看里面的文件。

2024-03-11 16:46:22 758

原创 6 Ubuntu18.04下安装Gn软件(和Ninja配合使用的,代替CMake、Automake + Makefile的那个)

sudo cp ./out/gn /usr/bin 将编译完的程序拷贝到默认程序路径,不这么做的话就需要你自己加环境变量了,make install命令也是类似的作用。/lib/llvm-8/bin/clang++ clang++ 创建链接。sudo apt-get install clang-8 安装Clang-8或以上版本编译器。/lib/llvm-8/bin/clang clang 创建链接。cd /usr/bin/ 进入默认软件目录。clang --version 测试编译器。

2024-03-11 16:24:40 1101

原创 5 一个能直接运行的Ninja例子,build.ninja文件怎么写?

默认的构建文件为当前目录下的 build.ninja 文件,类似于Linux中的Makefile文件。将这个目录加入到Linux也就是msys2的环境变量中,如果你曾经添加过,则就不要重复添加了。安装好的软件在msys2的 /mingw64/bin/ 目录下。新建一个mian.c文件,写上hello world输出。进入到本仓库的ninja演示目录。

2024-03-08 15:56:43 983

原创 0 OpenHarmony开源鸿蒙NEXT星河版内核嵌入式编程

OpenHarmony有Gitee源码仓库:https://gitee.com/openharmony ,但是和其它简单的Git仓库不一样,它不是通过 git clone xxx 一个命令就能下载全量代码的,而是和安卓类似,需要用到manifest这个顶层仓库,并且通过repo工具把很多个Git仓库的特定版本拉到本地同一个目录。bash build/prebuilts_download.sh 安装和芯片相关的编译器和二进制工具,全自动的,会下载的同时进行安装,要等待一段时间,有进度条。

2024-03-08 14:05:52 1152

原创 4 在QEMU硬件模拟器中运行开源鸿蒙OpenHarmony4.1的操作系统,无需实体开发板

Ubuntu回到OpenHarmony源码根目录下,使用命令行用QEMU模拟器运行开源鸿蒙系统。在电脑上安装QEMU模拟器软件,可以在Windows下安装,也可以在Linux发行版下安装。我准备在QEMU模拟器中运行ARM Cortex-M4的轻型开源鸿蒙系统。

2024-03-01 17:05:06 1606 1

原创 3 开源鸿蒙OpenHarmony4.1源码下载、编译,生成OHOS_Image可执行文件的最简易流程

执行 sudo docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_mini:3.2 将源码路径导入到Docker中。安装完之后进入系统,使用命令行将官方源换成华为源,这样下载软件时更快。将你下载好的鸿蒙源码在Ubuntu下解压,进入已经解压的源码根目录。在Ubuntu系统中解压上面已经下载的openHarmony源码。准备一台Windows电脑。

2024-03-01 14:52:45 1844

原创 2 开源鸿蒙OpenHarmony4.1源码下载和编译流程

bash build/prebuilts_download.sh 安装和芯片相关的编译器和二进制工具,全自动的,会下载的同时进行安装,要等待一段时间,有进度条。安装基础开发环境:安装VMware虚拟机+Ubuntu发行版系统+Git软件+repo软件+Python。hb --help 这个命令执行时可能有报错,有什么错误就解决什么错误,例如用下面方法解决报错。按前面的流程下载全量源码,或者特定开发板特定芯片的源码。hb build -f 开始编译,有报错则处理报错。编译开源鸿蒙源码前先下载源码。

2024-02-29 20:37:37 2112

原创 1 开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程

如果你下载特定类型(轻型小型标准)、特定芯片的系统,则需要在Linux发行版如Ubuntu下进行,总共11G左右;如果你下载全OpenHarmony4.0全量代码,则最简单,直接网址下载,总共30G左右。

2024-02-27 19:40:44 977

原创 8 有损压缩的.jpg图片文件格式详解,解封装拆包

【代码】8 有损压缩的.jpg图片文件格式详解,解封装拆包。

2023-11-28 14:53:58 236

原创 7 .png带透明像素和无损压缩的图片文件格式解析

硬件显示png图片,有时只需要霍夫曼表、PLAT表、图片码流、位深度、颜色类型、压缩参数,需要编解码驱动或者多媒体中间件将PNG文件进行解封装,并将拆解的数据送给硬件进行解码;

2023-11-28 11:38:12 147

原创 ffmpeg bt601转bt709命令

ffmpeg bt601转bt709命令:ffmpeg -i in.h264 -color_primaries 1 -color_trc 1 -colorspace 1 out.h264转完后用ffprobe out.h264查看的话,格式会从yuv420p(progressive)变成yuv420p(tv, bt709, progressive)

2023-06-15 09:36:19 557

原创 13 51单片机汇编:用Keil C51模拟器进行IO输入并打印输入结果[系列教程之13]

【代码】13 51单片机汇编:用Keil C51模拟器进行IO输入并打印输入结果[系列教程之13]

2023-06-11 21:43:53 724

原创 Keil C51从汇编跳转到main函数编译器报错ERROR L127: UNRESOLVED EXTERNAL SYMBOL的解决办法

如果你自建的汇编原文件不是以Keil默认的.A51或者.s .S结尾,而是以.asm .ASM结尾的话,在Keil工程里包含新文件时,不要使用文件类型:All files(Keil C51从汇编跳转到main函数编译器报错ERROR L127: UNRESOLVED EXTERNAL SYMBOL的解决办法。不使用Keil的默认文件,如何自己写Boot汇编文件并跳转到Main函数?),而要使用文件类型:Asm Source file(*.s;),否则Keil编译会报错,无法创建中间文件的路径。

2023-06-11 19:14:51 3390

原创 12 51单片机汇编:用Keil C51模拟器的UART#1窗口查看串口输出[系列教程之12]

【代码】12 51单片机汇编:用Keil C51模拟器的UART#1窗口查看串口输出[系列教程之12]

2023-06-11 15:59:22 1263

原创 8051单片机汇编LCALL为什么跳转不到子程序?解决办法(新手问题)

用Keil创建的AT89C51默认工程没有设置外部RAM,而内部RAM只有0x80的大小,代码按照ORG 0100H放置的话,则程序越界了;例如:如果用汇编写了一个子函数。

2023-06-11 13:06:44 551

原创 11 51单片机汇编:IO输出波形,并用Keil模拟器的示波器观看输出的波形[系列教程之11]

【代码】11 51单片机汇编:IO输出波形,并用Keil模拟器的示波器观看输出的波形[系列教程之11]

2023-06-10 22:47:23 786

原创 10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10]

【代码】9 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之9]

2023-06-09 21:54:55 615

原创 9 51单片机上电复位入口和中断入口【系列教程之9】

【代码】8 51单片机上电复位入口和中断入口【系列教程之8】

2023-06-08 22:38:56 257

原创 8 用Keil模拟器创建AT89C51默认工程【系列教程之8】

【代码】7 用Keil模拟器创建AT89C51默认工程【系列教程之7】

2023-06-08 22:32:21 238

原创 06 FFmpeg用命令将视频转成RGB888或RGB565

直接使用 ffmpeg -i in.mp4 out.rgb就能解码转码生成RGB视频裸流,但是用ffprobe查看格式会报错,用ffplay播放.rgb文件需要指定具体的格式才行。网上搜FFmpeg转RGB888,能搜到的东西很少,换了关键词后就能搜到了。查看ffmepg支持的 pixel_format 图像像素格式。

2023-03-31 14:40:25 1130 1

原创 02 科学里的相对论、量子力学、混沌系统对中华文化里的易经、道德经、黄帝内经的个人理解

Gitee源文件地址:CSDN原文章地址:易经、道德经、黄帝内经和相对论、量子力学、混沌系统异同(假设)

2023-03-27 13:55:37 418

原创 为什么要学相对论、量子力学、混沌系统?(for 软件工程师、艺术UI视频设计、机械土木各种工程师)

《广义相对论》又名《无损转化论或轮回论》《时间、空间(距离)、质量、能量(运动和信息)的转化或力学定律》,又名《一切守恒定律》。《量子力学》《物质组成和微观运动原理》《蝴蝶效应的源头》《思维的种子》。《混沌系统》又名《混沌与秩序》、《健康与死亡》、《工程的本质》《我买的东西为什么几十年都用不坏》《人为什么可以存在》《系统以负熵为食》《美的本质》《你为什么那么漂亮,我为什么那么帅》《什么是和谐》。相对论、量子力学、混沌、系统、信号、工程、混沌学、秩序、失衡、美学、平衡、和谐、分形学、复杂系统、架构、总监

2023-03-27 11:10:04 722

原创 04 嵌入式私有通信协议源码,用于两个设备间或者双核之间通信

技术依赖:模块中用到了链表、队列。已含有的功能:消息ACK响应、单发单收、多发多收、重发、超时处理、接收缓存队列、发送缓存队列、支持操作权限控制。

2023-03-25 03:38:07 429

原创 03 C语言使用队列Queue实现模块间数据传送与缓存

03 C语言使用队列Queue实现模块间数据传送与缓存

2023-03-09 00:47:53 262

原创 02 C语言使用队列实现缓存模块QueueBuffer

C语言使用队列实现缓存模块QueueBuffer

2023-03-08 19:12:38 851

原创 01 C语言使用链表实现队列(Queue、FIFO)模块

C语言使用链表实现队列(Queue、FIFO)模块

2023-03-08 14:55:44 880

原创 09 简化Linux链表list.h

linux链表list.h

2023-03-08 08:51:08 110

原创 08 Linux进程间通信网络套接字socket Demo

08 Linux进程间通信网络套接字socket Demo

2023-03-05 19:16:29 154

原创 07 Linux消息队列Demo

07 Linux消息队列Demo

2023-03-05 16:10:20 187

原创 06 Linux命名管道mkfifo demo

06 Linux命名管道mkfifo demo

2023-03-05 03:35:54 120

原创 05 Linux共享内存Demo

05 Linux共享内存Demo

2023-03-05 00:22:40 129

原创 04 Linux errno.h错误码中文注释

Linux errno.h错误码中文注释

2023-03-04 18:02:13 1119

原创 02 嵌入式/单片机/MCU众包接单平台有哪些?

CSDN文章地址:嵌入式/单片机/MCU众包接单平台有哪些?

2023-02-11 03:16:10 6651

原创 02 用Windows API使用Bresenham算法通过画直线的方式实现圆填充算法

在Windows电脑上,使用VS软件,使用C语言风格,使用Windows API函数接口(以前叫Win32 API)实现画圆和圆的填充。

2023-01-31 10:31:40 274

原创 01 C语言实现动态气泡碰撞和移动的效果,小球碰撞,Win7气泡壁纸,碰撞算法

想要实现多气泡相互碰撞的效果;想着这种在Win7壁纸中早就实现的效果,网上应该能找到源码的,但是,事实是我并没有找到能在实际产品中使用的,成熟的源码,没有办法,只有自己写。一开始出现一堆相互不重叠的,大小不一的气泡;或者一开始气泡从底下或者侧面出现,然后方向有一些随机的不同;自然和符合物理规律的碰撞效果;使用windows api、c语言、vsWin32 API 编程 —— 前言。

2023-01-29 11:38:01 1013

原创 04 MJPEG协议简述和JPEG拆分

MJPEG能搜到的资料和源码比较少,我搜了一圈之后都不知道怎么从mjpeg流中拆分出一张张jpeg图片,也不知道MJPEG格式是用什么方式来组织JPEG图片序列的;

2022-12-26 15:47:41 806

mp4 mkv解封装,视频文件转流文件,mp4、mkv文件转h264 hevc aac mp3程序.zip

将mp4和mkv文件解封装,将里面的h264 hevc aac mp3流生成对应的流文件,这些流文件可以用播放器播放出来,共9个.c文件,代码总共几千行,整个代码是借鉴的ffmpeg。需要在linux下使用gcc编译。

2020-07-22

音视频格式简述.pptx

对mp4、mkv、h264、aac的简述,总共15页,可以用作向领导汇报时的一个简短学习报告。文档里面不涉及到ffmpeg、编解码、音视频同步等内容,只是描述了一下文件和流格式的存储结构。

2020-07-22

嵌入式软件工程师笔试题

一、C语言基础 1、do{}while(); 和while(){};的区别? 答:do{}while();至少执行一次,while(){};可能一次也不会执行,前一个循环一遍再判断,后一个判断以后再循环 。 2、二维数组中的元素AA [ 3 ][ 7 ]的另外一种表示方法? 答:*(*(AA+3)+7; 3、计算一个字节里(byte)里面有多少bit被置1 答: int bit_set_counts_of_one_byte(char byte) { int count = 0;

2018-01-03

linux spi转串口驱动 zlg9518s芯片

linux spi转串口驱动 zlg9518s芯片 i.MX287开发板

2015-12-18

stm32f4xx官方库文件

stsw-stm32068.zip.rar STM32F4-Discovery_FW_V1.1.0

2014-05-30

空空如也

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

TA关注的人

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