自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Keil A51汇编伪指令和C51 C语言关键字大全

【代码】Keil A51汇编伪指令和C51 C语言关键字大全。

2024-07-23 23:54:56 738

原创 8051寄存器、指令集、伪指令和关键字详细介绍

C51是8位CPU。顾名思义,它的某个总线是8位,或者一些总线是8位的。实际上它的数据总线是8位的,每条CPU指令只能处理一个8位的数据,而它的外部地址总线是16位的,可以执行最大64KB的程序,也可以简单的理解为编译出来的可执行程序不能超过64KB(可以类比理解为在电脑上你只能下载安装64K以内的软件),这是C51的限制。为什么51单片机的地址总线是16位的,但是它却是8位机?不想使用盗版Keil的话,可以尝试使用SDCC开源编译器,只是没有IDE,还需要自己编写Makefile进行编译。

2024-07-23 23:47:36 937

原创 【系列教程之】2、延时与函数

Keil C51 C语言中调用汇编函数时,最多使用三个参数,默认第一个参数从R7开始放,第二个参数从R5开始放,第三个参数从R3开始放,如果是2字节的int,那么遵循8051的大端模式,高字节放在R2、R4、R6,低字节放在R3、R5、R7;汇编函数将返回值返回给C语言时,返回值需要放在R7开始的位置,char就放在R7,int是0xR6R7,long和float是0xR4R5R6R7,指针是类型在R3,指针值0xR2R1;汇编里的函数如果要给C语言用,那么函数名(标号)前要叫下划线,例如。

2024-07-23 23:05:55 540

原创 【系列教程之】1、点亮一个LED灯

本源码包含C语言和汇编工程,能直接在电脑中通过Keil模拟器运行,并在Keil示波器窗口看到 IO 输出的矩形波。

2024-07-23 23:02:42 286

原创 【目录】8051汇编与C语言系列教程

本源码包含C语言和汇编工程,能直接在电脑中通过Keil模拟器运行,并在Keil示波器窗口看到 IO 输出的矩形波。源码及工程链接汇编效果:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\brief 让LCD灯闪烁(控制IO输出);\details 使用Keil Simulator模拟器,和Debug时的Logic Analyzer示波器窗口查看输出;

2024-07-23 22:52:39 871

原创 Keil C51 8051汇编函数参数和返回值放在哪里,C语言调用汇编函数时汇编函数如何处理参数?

Keil C51 C语言中调用汇编函数时,最多使用三个参数,默认第一个参数从R7开始放,第二个参数从R5开始放,第三个参数从R3开始放,如果是2字节的int,那么遵循8051的大端模式,高字节放在R2、R4、R6,低字节放在R3、R5、R7;汇编函数将返回值返回给C语言时,返回值需要放在R7开始的位置,char就放在R7,int是0xR6R7,long和float是0xR4R5R6R7,指针是类型在R3,指针值0xR2R1;汇编里的函数如果要给C语言用,那么函数名(标号)前要叫下划线,例如。

2024-07-21 13:14:27 728

原创 05 触摸算法介绍,电容触摸屏算法

触摸屏一般用于手机、平板、手表、笔记本电脑、车机、白板、工业屏幕(电子产品屏幕)、触控板等,此外单独的触摸按键和触摸屏有联系但技术路线区别较大;触摸屏和显示屏是两个不同的东西,在使用上触摸屏只是和显示屏贴合在一起,它们有各自的驱动芯片,互不关联,只是在软件层将显示坐标和触摸坐标绑定在了一起;触摸屏的种类:电容触摸屏(干扰环境小的普通环境)、电阻触摸屏(用于传导干扰大和有水环境的工业设备上)、超声波触摸屏等;触摸屏的功能:单点触控(普通工业用)、多点触控(消费级)、触摸手势(消费级、触控板等)

2024-05-21 10:47:30 674

原创 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 1154

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

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

2024-03-20 10:39:43 1039

原创 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 481

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

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

2024-03-12 10:06:10 1478

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

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

2024-03-11 16:46:22 1103

原创 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 1409

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

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

2024-03-08 15:56:43 1142

原创 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 1290

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

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

2024-03-01 17:05:06 2745 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 2616

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

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

2024-02-29 20:37:37 3150

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

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

2024-02-27 19:40:44 1460

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

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

2023-11-28 14:53:58 306

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

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

2023-11-28 11:38:12 197

原创 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 687

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

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

2023-06-11 21:43:53 932

原创 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 4252

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

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

2023-06-11 15:59:22 1683

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

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

2023-06-11 13:06:44 738

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

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

2023-06-10 22:47:23 1060

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

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

2023-06-09 21:54:55 815

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

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

2023-06-08 22:38:56 303

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

8 用Keil模拟器创建AT89C51默认工程[系列教程之8]

2023-06-08 22:32:21 319

原创 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 1395 1

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

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

2023-03-27 13:55:37 443

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

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

2023-03-27 11:10:04 735

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

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

2023-03-25 03:38:07 451

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

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

2023-03-09 00:47:53 280

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

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

2023-03-08 19:12:38 926

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

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

2023-03-08 14:55:44 947

原创 09 简化Linux链表list.h

linux链表list.h

2023-03-08 08:51:08 120

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

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

2023-03-05 19:16:29 173

原创 07 Linux消息队列Demo

07 Linux消息队列Demo

2023-03-05 16:10:20 238

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关注的人

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