登录社区云,与社区用户共同成长
邀请您加入社区
Hi3536AV100 是针对多路高清/超高清(1080p/4M/5M/4K)智能NVR产品应用开发的新一代专业高端SoC芯片
步骤 2 安装工具链。运行命令 sudo ./aarch64-himix100-linux.install 即可完成此工具链的安装。其它工具链安装方法与上述描述类似。步骤 1 解压工具链。执行如下命令进行解压:tar -xvf aarch64-himix100-linux.tgz。执行 aarch64-himix100-linux-gcc -v 正常使用。在opt下生成文件,将lib拷贝到usr/
Hi3403V100 是一颗面向监控市场推出的专业 Ultra-HD Smart IP Camera SOC。最高支持四路sensor输入,支持最高4K60的ISP图像处理能力
随着社会的发展,人们生活水平的提高,对智能家具的要求也越来越高,因此智能衣柜的选择也变得越来越重要,普通的衣柜已经不能满足大部分家庭的需要,在科技的时代,我们要与时俱进,智能衣柜的选择越来越影响着人们生活的体验。对于一些地区,在比较潮湿的环境下,普通的衣柜更加容易滋生细菌等,智能衣柜很好的解决了这些问题。
视频输入(VI)模块实现的功能:通过MIPI Rx(含MIPI接口、LVDS接口和HISPI接 口),SLVS-EC,BT.1120,BT.656,BT.601,DC 等接口接收视频数据。VI将接收到的 数据存入到指定的内存区域,VI(Video Input)内嵌ISP图像处理单元,可以对接收到的原始视频图像数据进行处理,实现视频数据的采集。VI 分成两个物理子模块:捕获子模块VICAP和处理子模
Hi3519av100+imx585 AE基本配置
解决matplotlib-cpp安装问题LINK : fatal error LNK1104: 无法打开文件“python39_d.lib”error C2766: 显式专用化;已定义“matplotlibcpp::detail::select_npy_type”error C2039: "stod": 不是 "std" 的成员error C3861: “stod”: 找不到标识符
(1)视频的本质是多帧图片,图片的本质是RGB或rawRGB数据,要占用一段连续内存(2)视频的裁剪、缩放、修正处理等各种操作,本质上就是对内存中的数据进行运算(3)视频缓存池(VB, video buffer)就是一段很大,又被合理划分和管理的内存,用来做视频数据的暂存和运算场地(4)公共视频缓存池的公共2字,可以理解为全局变量,也就是各个模块都能访问的一段内存(5)看似视频缓存块在各个模块之间
海思3516300 移植 LVGL
上篇移植了LVGL v9.1.1版本及使用SquareLine绘制ui生成代码移植, 发现SquareLine只免费试用30天,了解到NXP GUI-Guider也可以用来绘制ui并生成代码,但是GUI-Guider只支持v7.x和v8.x, 所有此篇记录一下LVGL v8.x移植及GUI-Guider代码移植。提示:以下是本篇文章正文内容,下面案例可供参考GUI Guider是恩智浦提供的用户友
本文介绍了星闪开发环境的搭建流程。首先需要安装魔改版VSCode的HiSparkStudio IDE,从Gitee获取SDK并注意存放路径。创建工程时需根据芯片型号选择对应选项。编译例程时需配置Python 3.11.4环境并安装必要库,以LED灯例程演示了Kconfig配置方法。最后介绍了固件烧录步骤,包括串口驱动安装、参数设置和烧录操作。整个过程涵盖了从环境配置到程序烧录的完整开发流程,成功烧
1、嵌入式端的资源有限,大部分的嵌入式因为成本敏感的原因,flash总的空间大小控制在16M左右,这就导致每一块的资源用量都是严格要求的,所以,RTC通信这一小块的用量要尽可能的低,这也就是我们为什么要将EasyRTC压缩到500K-800K的原因了!2、另外,WebRTC的调用本就是一个很复杂的过程,很难捋清楚脉络,所以,一套行之有效的RTC调用流程封装就至关重要了。
学习c对我来说是一个发展自我的工具,尽管说ai取代编程,以后不用人来了,但至少我认为需要去学习c语言之后你才能更好的去利用ai去达成你的目的,如果连基础的汇编语言都不会怎么能谈利用ai呢?对我自己希望向嵌入式方向发展,能够做些小机器人。我是今年的大一新生,在电子信息方面学习。
电子信息工程专业学生立志夯实C语言基础,跟随鹏哥系统学习,目标是掌握51单片机、STM32并开发小机器人。采用“理论+实践+复盘”闭环学习法,每周投入11小时,坚持写博客、参与开源、定期总结。以字节跳动为理想目标,追求技术成长与创新突破,脚踏实地迈向嵌入式开发之路。
上次我们简单介绍了一下Linux系统编程的环境搭建,这篇开始正式走进Linux系统编程的篇章。我们之前介绍操作系统的时候说过,无非是为了更好控制硬件才选择开发操作系统,人与硬件的交互无非就是人输入,硬件输出想要的结果,但是我们知道硬件有很多类型,什么硬盘,网卡,终端,串口,管道等等它们底层硬件各不相同,要实现读写操作也十分麻烦,而且我们都知道学习Linux,首要就是要有一切皆文件的思想,以这个思想
函数模型:输入——处理——输出step1.先确定函数名,能够表示函数的功能step2.从函数模型角度考虑要处理数据的个数和数据类型(数据类型 形参变量名1,数据类型 形参变量名2 …)每个形式参数变量,都要说明类型。step3.处理数据,写函数核心功能代码step4.确定返回值的类型例:今天主要学习了函数,了解了函数的定义和他的特点,接着和前几天学习的简单算法结合起来,完成不同功能函数的编写和调用
KMP算法代码到底为什么要那样写?用两分钟的时间看完这篇文章,或许你能茅塞顿开!
CPU处理进程与线程的核心机制是操作系统通过状态管理、任务调度和资源分配实现并发执行。进程是资源分配的最小单位,拥有独立内存空间;线程是CPU调度的最小单位,共享进程资源。进程/线程经历新建、就绪、运行、阻塞、终止五种状态流转,操作系统通过短程调度算法(如FCFS、RR、优先级)在就绪队列中选择任务分配CPU时间片。线程实现模型分用户级(轻量但无法利用多核)、内核级(支持多核但开销大)和混合级(折
SDL3— 提供图形窗口、事件处理(鼠标/键盘)能力,模拟嵌入式 LCD 显示屏FreeRTOS— 实时操作系统内核,在一个独立的 Windows 线程中启动调度器,运行 RTOS 任务LVGL— 轻量级嵌入式 GUI 库,通过 SDL3 渲染显示Nimmake— Python 编写的构建工具,自动化管理编译、链接与依赖通过这种方式,你可以在没有硬件开发板的情况下,在 PC 上直接开发、调试和验证
SylixOS 字符设备驱动框架 = 以"路径名 / 主子设备号 / fd / 设备头"为键的多级映射表,把用户的逐层路由到具体的驱动回调。核心机制就是分层映射| 映射1 rootFs路径树 路径名 -> LW_ROOTFS_NODE -> LW_DEV_HDR| (字符串) (节点) (设备头)v| 映射2 设备头字段 DEVHDR_usDrvNum -> _S_deventryTbl[DrvN
本文基于STM32F407ZGT6芯片,配置时钟至168MHz,使用HAL库生成初始化代码。设计双向链表结构用于任务管理,实现链表初始化与节点插入功能。在此基础上,构建轻量级实时操作系统内核:定义任务控制块(TCB),静态创建任务并初始化堆栈,通过伪造中断现场(设置PC、LR、xPSR等寄存器值)实现任务切换。关键在于利用PendSV异常完成上下文切换,确保任务调度的可靠性与高效性。
SylixOS 中断子系统由三层构成,各层职责清晰分离:fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;BSP移植层内核层Arch适配层硬件层IRQ异常向量号查表写入初始化控制ARM CPU异常向量地址 0x00-0x1CSoC 中断控制器具
对其他线程间通讯方式,编写测试代码,根据实测结果及系统源码机制探究,梳理所有线程间通信方式,在实例对象delete()后,阻塞wait()线程间通信方式是否可被唤醒唤醒后返回状态二进制信号量✅️计数型信号量✅️互斥信号量✅️读写信号量✅️消息队列✅️事件集✅️条件变量✅️。
RMS 的核心逻辑可以压缩为:Create:创建 RMS,状态为 INACTIVE。First Period:切换到 ACTIVE,记录周期起点。Next Period:计算已执行时间。超周期:返回 ERROR_RMS_TICK。刚好到周期:直接进入下一周期。未到周期:线程进入 DELAY 等待。Tick:等待到期后清除 DELAY,线程重新 ready。Resume:_RmsEndExpire
本文系统梳理 C 语言数组基础,从数组定义出发,依次讲解一维数组的创建语法、各类初始化写法、下标访问与循环读写操作,结合内存地址证明数组元素连续存储,演示`sizeof`求取数组元素个数的常用技巧。文章拓展至二维数组,阐释其本质、行列初始化方式与双层循环遍历逻辑,同样验证二维数组在内存中连续排布。文末介绍 C99 变长数组 VLA,说明其使用变量指定长度、运行时分配空间、不可初始化的特性,同时标注
操作系统通过硬件时钟中断感知时间,构建软件定时器与时间片调度机制,实现进程调度、超时检测等核心功能。基于中断的节拍计数驱动调度器,结合红黑树或时间轮管理定时器,支持单次与周期性触发。时间片轮转与多级反馈队列算法平衡公平性与响应速度。进程、内存、文件系统与中断处理四大模块协同运作,支撑系统稳定运行。本文通过C语言实例演示时间获取、定时信号与调度模拟,并结合高频面试题,构建“原理—实现—考察”闭环知识
刚开始你大概率会经常写不出代码、一堆报错,怀疑自己不适合编程。所有人学 C 的时候都经历过这个阶段。C 语言不仅仅是学一门语法,它在训练你的逻辑思维。学好 C 之后,再去学 C++、Java、Python、操作系统、数据结构都会轻松很多。
句柄”对应的英文单词是 Handle。在英语中,Handle 的本意是门把手、抽屉拉手或锅把。想象一下这个场景:你想搬动一口烧得烫手的铁锅。你肯定不会直接用手去抓锅身(直接操作内存/对象),而是会去抓锅侧面的“柄”(Handle)。通过抓住这个“柄”,你不仅能安全地控制整个铁锅,而且就算铁锅在炉子上被挪了位置(内存地址改变),只要“柄”还在你手里,你就依然能稳定操作它。在软件工程中,句柄就是操作系
本文基于 Hi3861(HarmonyOS LiteOS)智能家居项目实战,完整记录 MQTT 通信从 0 到稳定收发的踩坑全过程:Broker 选择与 MQTTX 配置、Topic 匹配、cJSON 指令解析、无心跳被踢下线、PINGREQ 保活、断线自动重连、AT+CIPSTART 超时、I2C 等不到 ACK 卡死等问题,每个坑都附真实串口日志、原因分析和可直接复用的代码。
本项目基于STM32F103C8T6最小系统板,使用HAL库开发,实现以下核心功能:通过DMA接收上位机VOFA+发送的数据,将接收到的数据解析为浮点数,用于驱动舵机旋转到指定角度;同时通过DMA按照JustFloat协议向上位机回传当前角度和PWM占空比数据,实现双向实时通信。
结构体(struct)是C语言中最核心的自定义数据类型,它允许你把不同类型的数据打包成一个整体。无论是操作系统内核、网络协议还是数据库,底层都离不开结构体。
ESP32 的 AP(Access Point)热点模式是设备配网最核心的方案。设备出厂没有路由器账号密码时,ESP32 开启 AP 热点,手机连接该热点,访问内置 Web 网页,把家里路由器的 SSID、密码提交给设备,完成配网。很多开发者直接复制官方简单 AP Demo,只实现热点能够被搜索;
在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ,使数组变为 [nums[k], nums[k+1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,4,4,5,6,6,7] 在下标 5 处经旋转后可能变为 [4,5,6,6,7,0,1,2,4,4]。输入:nums = [2,5,6,0,0,1,2
通过滑动窗口技术,结合频率数组和计数器的精准控制,该算法能够在 线性时间复杂度 内高效解决最小覆盖子串问题。频率数组的正负值设计:简化了冗余字符的处理。计数器的动态更新:避免全量检查字符频率。边界条件的鲁棒性:通过初始化 min_length 为 -1,明确标识无效状态。此问题不仅考察对滑动窗口的理解,还要求对字符频率管理和边界条件的细致处理,是算法设计中的经典范例。
先上代码:#includeusing namespace std;int main(){int a[] = {1,2,3};double *p = reinterpret_cast(&a[0]);*p= 5;cout << a[0]<<""<<a[1]<<""<< a[2]<<endl ;return 0;}想了好久都没有得到答案,在CSDN
条件重构:通过位运算将奇偶位置统一处理模式识别:利用有序性建立的成对规律深入理解数据特征(有序性、重复模式)对算法设计的影响掌握位运算在索引处理中的巧妙应用培养将特殊位置判断转换为统一逻辑的抽象能力这种类型的题目在面试中常见于考察候选人对二分查找变种应用的能力,理解其中的模式识别和索引处理技巧,可以帮助我们更好地应对类似的算法问题,拥有计算机的数学思维也尤其重要。位运算优势:充分利用CPU的硬件特
摘要:C语言凭借5大核心特性统治底层开发50年:指针直接操控内存,实现高效变量交换;宏定义在编译期完成计算,实现零开销抽象;位运算直接操作硬件,提升性能5倍;函数指针实现零开销多态,增强灵活性;内存池手动管理内存,消除碎片提升10倍性能。这些特性体现了C语言"接近硬件、极致高效"的设计哲学,使其成为操作系统、嵌入式等核心领域的不二之选,即使新兴语言层出不穷,仍无法撼动其底层王者
聊完"是什么",该聊聊"为什么"。项目立项时,技术选型其实经过了反复权衡,最终决定用最朴素的 Web 三件套,理由如下。不知道你有没有经历过这样的夜晚:台灯亮着,书桌前摊开的作文本上一片空白,笔尖悬在纸面上,迟迟落不下去。审题审了二十分钟,立意改了三次,列出的提纲写了一半又划掉——距离交卷的时间一分一秒地迫近,而你大脑里那些关于"青春"“奋斗”"担当"的素材,像被打乱的拼图一样,怎么也拼不成一篇像
同一个系列的芯片,型号后面几个字母和数字为什么会影响实际使用?一块看似简单的最小系统板,启动时还要先确认哪些事情?
本文为STM32C8T6零基础入门教程,详解面包板使用原理与流水灯实验。通过B站视频教程掌握Keil开发环境搭建,利用寄存器方式配置GPIOA0-A7为推挽输出,结合BSRR寄存器实现LED逐个点亮与熄灭,完成流水灯效果。内容涵盖时钟开启、引脚配置、代码编写与接线规范,强调底层寄存器操作对理解ARM内核的重要性,适合初学者系统学习嵌入式开发。
本文系统阐述了SRAM内存布局(.data、.bss、heap、stack等)与FreeRTOS任务创建流程,解析了五种堆管理机制特性。结合STM32平台,通过串口实现动态内存分配与按键事件处理,演示了pvPortMalloc/vPortFree的使用及多任务协同机制,验证了FreeRTOS在嵌入式系统中对内存与外设的高效管理能力。
开源鸿蒙 PC 社区推出 Code::Blocks 鸿蒙适配版(25.03-ohos-lite),基于 Qt 重建 IDE 外壳,保留工程模型与编辑功能,内置 picoc 实现 C 程序解释执行,支持真机运行。通过 XComponent 宿主与 ArkTS 轻量封装,实现“编辑—构建—运行”闭环,验证了传统桌面开发在鸿蒙沙箱中的可行性,为跨平台 C++ 开发提供新路径。
c语言
——c语言
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net