- 博客(115)
- 资源 (5)
- 收藏
- 关注
原创 8051汇编执行RET函数返回后总是复位到ORG 00H的位置,问题如何解决?
【代码】8051汇编执行RET函数返回后总是复位到ORG 00H的位置,问题如何解决?
2024-11-01 16:15:46
320
原创 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
2520
原创 【系列教程之】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
765
原创 【系列教程之】1、点亮一个LED灯
本源码包含C语言和汇编工程,能直接在电脑中通过Keil模拟器运行,并在Keil示波器窗口看到 IO 输出的矩形波。
2024-07-23 23:02:42
395
原创 【目录】8051汇编与C语言系列教程
本源码包含C语言和汇编工程,能直接在电脑中通过Keil模拟器运行,并在Keil示波器窗口看到 IO 输出的矩形波。源码及工程链接汇编效果:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\brief 让LCD灯闪烁(控制IO输出);\details 使用Keil Simulator模拟器,和Debug时的Logic Analyzer示波器窗口查看输出;
2024-07-23 22:52:39
1258
原创 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
1041
原创 05 触摸算法介绍,电容触摸屏算法
触摸屏一般用于手机、平板、手表、笔记本电脑、车机、白板、工业屏幕(电子产品屏幕)、触控板等,此外单独的触摸按键和触摸屏有联系但技术路线区别较大;触摸屏和显示屏是两个不同的东西,在使用上触摸屏只是和显示屏贴合在一起,它们有各自的驱动芯片,互不关联,只是在软件层将显示坐标和触摸坐标绑定在了一起;触摸屏的种类:电容触摸屏(干扰环境小的普通环境)、电阻触摸屏(用于传导干扰大和有水环境的工业设备上)、超声波触摸屏等;触摸屏的功能:单点触控(普通工业用)、多点触控(消费级)、触摸手势(消费级、触控板等)
2024-05-21 10:47:30
1627
原创 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
1436
原创 10 开源鸿蒙中芯片与开发板对应的源码(硬件相关的部分)
因为硬件各种各样,为了学习方便,这里选择几个ARM核的QEMU模拟器(不使用硬件,使用虚拟开发板)开源鸿蒙通过平台仓和芯片仓存放指定芯片和指定开发板的代码,硬件相关的代码和纯逻辑代码是分开存放的。verdor芯片仓的开发板配置。device芯片仓的源码和配置。
2024-03-20 10:39:43
1232
原创 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
597
原创 8 OpenHarmony开源鸿蒙build编译模块的原理和系统配置讲解
【代码】8 OpenHarmony开源鸿蒙build编译模块的原理和系统配置讲解。
2024-03-12 10:06:10
2185
原创 7 BUILD.gn文件怎么写,Gn + Ninja编译一个Hello world程序的例子Demo
cd examples/simple_build/ 下载源码后进入其中的子目录。这是一个简单的BUILD.gn配置文件。这是Gn官方的例子,在Gn的源码里面。ls 先看看里面的文件。
2024-03-11 16:46:22
1537
原创 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
1618
原创 5 一个能直接运行的Ninja例子,build.ninja文件怎么写?
默认的构建文件为当前目录下的 build.ninja 文件,类似于Linux中的Makefile文件。将这个目录加入到Linux也就是msys2的环境变量中,如果你曾经添加过,则就不要重复添加了。安装好的软件在msys2的 /mingw64/bin/ 目录下。新建一个mian.c文件,写上hello world输出。进入到本仓库的ninja演示目录。
2024-03-08 15:56:43
1382
原创 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
1483
原创 4 在QEMU硬件模拟器中运行开源鸿蒙OpenHarmony4.1的操作系统,无需实体开发板
Ubuntu回到OpenHarmony源码根目录下,使用命令行用QEMU模拟器运行开源鸿蒙系统。在电脑上安装QEMU模拟器软件,可以在Windows下安装,也可以在Linux发行版下安装。我准备在QEMU模拟器中运行ARM Cortex-M4的轻型开源鸿蒙系统。
2024-03-01 17:05:06
4917
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
3575
原创 2 开源鸿蒙OpenHarmony4.1源码下载和编译流程
bash build/prebuilts_download.sh 安装和芯片相关的编译器和二进制工具,全自动的,会下载的同时进行安装,要等待一段时间,有进度条。安装基础开发环境:安装VMware虚拟机+Ubuntu发行版系统+Git软件+repo软件+Python。hb --help 这个命令执行时可能有报错,有什么错误就解决什么错误,例如用下面方法解决报错。按前面的流程下载全量源码,或者特定开发板特定芯片的源码。hb build -f 开始编译,有报错则处理报错。编译开源鸿蒙源码前先下载源码。
2024-02-29 20:37:37
5595
原创 1 开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程
如果你下载特定类型(轻型小型标准)、特定芯片的系统,则需要在Linux发行版如Ubuntu下进行,总共11G左右;如果你下载全OpenHarmony4.0全量代码,则最简单,直接网址下载,总共30G左右。
2024-02-27 19:40:44
2087
1
原创 7 .png带透明像素和无损压缩的图片文件格式解析
硬件显示png图片,有时只需要霍夫曼表、PLAT表、图片码流、位深度、颜色类型、压缩参数,需要编解码驱动或者多媒体中间件将PNG文件进行解封装,并将拆解的数据送给硬件进行解码;
2023-11-28 11:38:12
327
原创 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
1068
原创 13 51单片机汇编:用Keil C51模拟器进行IO输入并打印输入结果[系列教程之13]
【代码】13 51单片机汇编:用Keil C51模拟器进行IO输入并打印输入结果[系列教程之13]
2023-06-11 21:43:53
1130
原创 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
5617
原创 12 51单片机汇编:用Keil C51模拟器的UART#1窗口查看串口输出[系列教程之12]
【代码】12 51单片机汇编:用Keil C51模拟器的UART#1窗口查看串口输出[系列教程之12]
2023-06-11 15:59:22
2111
原创 8051单片机汇编LCALL为什么跳转不到子程序?解决办法(新手问题)
用Keil创建的AT89C51默认工程没有设置外部RAM,而内部RAM只有0x80的大小,代码按照ORG 0100H放置的话,则程序越界了;例如:如果用汇编写了一个子函数。
2023-06-11 13:06:44
943
原创 11 51单片机汇编:IO输出波形,并用Keil模拟器的示波器观看输出的波形[系列教程之11]
【代码】11 51单片机汇编:IO输出波形,并用Keil模拟器的示波器观看输出的波形[系列教程之11]
2023-06-10 22:47:23
1261
原创 10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10]
【代码】9 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之9]
2023-06-09 21:54:55
1006
原创 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
2114
原创 02 科学里的相对论、量子力学、混沌系统对中华文化里的易经、道德经、黄帝内经的个人理解
Gitee源文件地址:优快云原文章地址:易经、道德经、黄帝内经和相对论、量子力学、混沌系统异同(假设)
2023-03-27 13:55:37
530
原创 为什么要学相对论、量子力学、混沌系统?(for 软件工程师、艺术UI视频设计、机械土木各种工程师)
《广义相对论》又名《无损转化论或轮回论》《时间、空间(距离)、质量、能量(运动和信息)的转化或力学定律》,又名《一切守恒定律》。《量子力学》《物质组成和微观运动原理》《蝴蝶效应的源头》《思维的种子》。《混沌系统》又名《混沌与秩序》、《健康与死亡》、《工程的本质》《我买的东西为什么几十年都用不坏》《人为什么可以存在》《系统以负熵为食》《美的本质》《你为什么那么漂亮,我为什么那么帅》《什么是和谐》。相对论、量子力学、混沌、系统、信号、工程、混沌学、秩序、失衡、美学、平衡、和谐、分形学、复杂系统、架构、总监
2023-03-27 11:10:04
799
原创 04 嵌入式私有通信协议源码,用于两个设备间或者双核之间通信
技术依赖:模块中用到了链表、队列。已含有的功能:消息ACK响应、单发单收、多发多收、重发、超时处理、接收缓存队列、发送缓存队列、支持操作权限控制。
2023-03-25 03:38:07
547
mp4 mkv解封装,视频文件转流文件,mp4、mkv文件转h264 hevc aac mp3程序.zip
2020-07-22
音视频格式简述.pptx
2020-07-22
嵌入式软件工程师笔试题
2018-01-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人