嵌入式开发

0人已关注

纳米网嵌入式开发频道 — 提供嵌入式开发领域最新资讯、技术文章和行业动态。

推荐 最新
嵌入式开发技术
彻底理解链接器:六,大型项目是如何被构建出来的

彻底理解链接器:六,大型项目是如何被构建出来的

在讲解大型项目如何被构建之前,我们首先来讨论一个问题,有句话说的很好,梦想总是要有的,万一实现了呢,那么问题来了,要怎么实现呢,这里就涉及到了如何实现目标, 目标是如何实现的 其实很简单,本质上只有两点: 知道最后想要的是什么 为此需要做些什么 有时我们的目标可能不是简单的诸如每天跑五公里之类,比如像通过一门考试,学会一项技能这样的系统性工程。这时我们可能一下子不知道要做些什么,那么这就需要进

sv基础:timescale、timeunit、timeprecision

1. 前言 Verilog/System verilog 仿真中的时间单位/时间精度设置是保证仿真设置正确的重要手段,但是很多场景下却常常被忽视。设置不合理会导致诸多问题,例如延时不准确,时钟周期不对,打印信息不准确,验证用例耗费的时间特别长,多模块配合无法发现隐藏的问题。 因此,本文件将描述timescale、timeunit、timeprecision等概念,并描述如何正确地使用timesca

FPGA基础:一文吃透CRC算法(下)——CRC硬件加速原理深度解析

FPGA基础:一文吃透CRC算法(下)——CRC硬件加速原理深度解析

前言 在很多以太网、SATA 或其他高速接口项目中,我们经常会接触到 CRC(循环冗余校验)。通常,工程师会通过网站或软件工具生成一整套带异或操作的组合逻辑来实现 CRC 算法,而不去深入理解其原理——只知道可以这样用。事实上,在大多数情况下,确实不需要了解 CRC 的具体实现方法,这种黑盒化的使用方式在低频窄位宽场景下确实可行。 但是,当你的系统时钟非常高,例如 800MHz、1GHz,且数据位

基于FPGA的RGB565_YCbCr_Gray算法实现

基于FPGA的RGB565_YCbCr_Gray算法实现

  前面我们讲了基于FPGA用VGA显示一副静态图片,那么接下来我们就接着前面的工程来实现我们图像处理的基础算法里最简单的一个那就是彩色图像转灰度的实现。 将彩色图像转化为灰度的方法有两种,一个是令RGB三个分量的数值相等,输出后便可以得到灰度图像,另一种是转化为YCbCr格式,将Y分量提取出来,YCbCr格式中的Y分量表示的是图像的亮度和浓度所以只输出Y分量,得到的图像就是灰度图像了。我在这里选

漫谈PCIe——BAR是什么

漫谈PCIe——BAR是什么

前言 对于主机而言,FPGA-PCIe 设备通过其 BAR(Base Address Register)被识别和访问。主机必须通过读写 BAR 所映射的地址空间,才能与 FPGA-PCIe 正确通信。这相当于将 FPGA-PCIe 内部的地址区域映射到主机的内存空间中,主机通过访问这段内存来完成数据收发。 readl(dif->bar0_mapped_addr + (offset<&l

基于FPGA的VGA静态图片显示

基于FPGA的VGA静态图片显示

之前学习了半年的图像处理,所以计划将自己学过的几个图像处理的基础算法,做过的设计记录下来,在OpenHW论坛上发表,计划是这样的,用VGA做显示,使用PC端上位机通过串口发送一幅图片数据到FPGA开发板,FPGA接收数据并做处理最终发送给VGA显示屏显示,计划要写的算法有彩色图像转灰度、均值/中值滤波、Sobel边缘检测等。那么现在这是第一篇,先来写VGA显示的驱动、以及将一幅图片显示到VGA显示

FPGA漫谈PCI-E:TLP包

FPGA漫谈PCI-E:TLP包

前言 本系列不会从零讲PCIe,也不会照搬规范条款,标准文档已经够厚,这里更像是一份工程师视角下的PCIe手边笔记 , 以更简洁的方式记录PCIe的关键点。 TLP包 由于PCIe-DMA的实现始终在事务层通过TLP包完成,因此深入理解TLP包的构成至关重要。 TLP包所在位置 在PCIe协议的传输层中,TLP包的结构相较于链路层与物理层的报文而言,最为简单清晰。 ‍ TLP的结构 TLP的结构

基于FPGA的均值滤波算法的实现

基于FPGA的均值滤波算法的实现

  前面实现了基于FPGA的彩色图像转灰度处理,减小了图像的体积,但是其中还是存在许多噪声,会影响图像的边缘检测,所以这一篇就要消除这些噪声,基于灰度图像进行图像的滤波处理,为图像的边缘检测做好夯实基础。   椒盐噪声(salt & pepper noise)是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素。椒盐噪声是一种因为信号脉冲强度引

CAN总线简易入门教程

CAN总线简易入门教程

目录 什么是CAN总线? 物理层 差分信号 连接方式 CAN节点 CAN协议 如何寻址? 帧类型 数据帧 远程帧 错误帧 过载帧 消息时序以及同步 位时序 波特率 消息过滤器 如何配置? 总结 参考 什么是CAN总线? Controller Area Network,简称CAN或者CAN bus) 是一种功能丰富的串行

突破限制!为TensorFlow Lite Micro添加多输入多输出的完整方案解析(二)

在上一篇文章中,我们已经带大家了解了多输入多输出(MIMO)能力的架构设计思路。 今天,小编将继续深入解析如何将架构设计真正落地到可运行代码,并带来一套可复用的核心实现。会介绍多输入多输出支持框架的关键组成部分。通过清晰的结构化设计、类型安全的接口抽象,为复杂的嵌入式 AI 模型建立一个高扩展性、高可维护性的基础底座。 下面,我们就将通过头文件设计、基础数据结构构建、生命周期管理等内容一步步展示一

Notepad++编辑器——Verilog、代码片段、直接编译

Notepad++编辑器——Verilog、代码片段、直接编译

   版本:Notepad++ 7.6.6 ,32位 //======================================================================== //==      安装与Verilog设置 //========================================================================

嵌入式开发,如何防止设备被抄袭?

嵌入式开发,如何防止设备被抄袭?

前言 在国内做产品设计开发,很难避免不被抄袭,被仿照。在没有形成技术壁垒之前,如何防止产品被抄袭是一个不可回避的问题。 (一)常规设备 常规设备主要的防护手段有: 专利保护 加密保护代码 授权校验 持续更新和改进 (1)专利保护 对于一些比较重要的技术发明或是创新,应该尽快申请专利。虽然目前国内对于知识产权保护的力度有限,但申请专利还是有用的,至少可以避免专利被别人提前申请,导致自己侵权。 (

睿擎平台 FPGA 高速通信:DSMC 总线读写实战

睿擎平台 FPGA 高速通信:DSMC 总线读写实战

在工业控制和数据采集场景中,处理器与 FPGA 之间的高速数据交换是一个常见需求。传统方案通常采用 SPI(速度受限,一般 < 10Mbps)或 PCIE(带宽高但引脚多、设计复杂)。有没有一种方案,既能达到 几十 MB/s 的带宽,又只需要少量引脚,设计简单? 今天分享一个基于 睿擎派 RC3506 的方案——利用 RK3506 芯片内置的 DSMC(Double Data Rate Se

基于FPGA的彩色图像转灰度算法实现

基于FPGA的彩色图像转灰度算法实现

  将彩色图像转化为灰度的方法有两种,一个是令RGB三个分量的数值相等,输出后便可以得到灰度图像,另一种是转化为YCbCr格式,将Y分量提取出来,YCbCr格式中的Y分量表示的是图像的亮度和浓度所以只输出Y分量,得到的图像就是灰度图像了。我在这里选择第二种方法实现。   YCBCr是通过有序的三元组来表示的,三元由Y(Luminance)、Cb(Chrominance-Blue)和Cr(Chrom

发布1天,就有300+人复刻?这个项目,开源了

发布1天,就有300+人复刻?这个项目,开源了

工程名称:开源!自制一瓶电子海洋! 工程作者:hei_mao35 前言 小伙用256颗灯珠,做了个电子“海洋”! 该开源作品发布仅1天 就获得7K关注 开源附件被下载300+次 这么受欢迎?!咱来围观一下! 瞅瞅它有啥功能?是咋设计的?有啥特别的? *0***1 它有什么功能? ” 1 基于FLIP流体模拟算法制作 2 颜色/水位会随时间变化:比如正午时灯光是青色,午夜时灯光是绿色 3 低功耗

LINUX的文本编辑器

LINUX的文本编辑器

在讲脚本前,根据小艾的经历,有必要介绍一下文本编辑器。 这个说起来不是个难事,但是对于刚使用linux的同学而言,编辑文本还真是个问题,首先,你很难找到写字板,就算找到了,也很难用,我说的没错吧。😄 所以,你必须改变,就从现在开始! Linux平台上一直有两派,争执不下,一个是emacs,另一个就是vim 他们两个都是很好的文本编辑器,但由于开发初衷不一样。 前者大约于1975在MIT诞生,他是一

空指针详解

空指针详解

空指针背景与动机 在 C++ 中,我们常听到空指针(null pointer),但在真实代码中,对于空指针的表示,竟有 NULL、0 和 nullptr 三种之多。就如同茴香的“茴”的几种写法一样。初学者不禁要问:那到底哪一个才是正确优雅的推荐写法呢 ? 空指针(null pointer):表示不指向任何有效的内存地址。在早期 C 语言中,宏 NULL 通常被定义为 0(或在某些实现中 (void

极海芯得 EP.79 | APM32F427在RT-Thread系统上如何使用LwIP网络功能实现网络通信

极海芯得 EP.79 | APM32F427在RT-Thread系统上如何使用LwIP网络功能实现网络通信

下面是基于RT-Thread的ENV命令行开发环境,在APM32F427上使用LwIP网络协议栈实现网络通信功能的。 1. 工具和RT-Thread源码的准备 1.1 ENV工具的安装和使用 这里只做基本的介绍,详细的使用方法请点击下面链接看RTT的官方文档中心中对ENV工具的介绍。 https://www.rt-thread.org/document/site/#/development-too

FPGA计算3行同列数据之和

FPGA计算3行同列数据之和

实验:FPGA**计算3**行同列数据之和 实验要求:PC机通过串口发送3行数据(一行有56个数据,3行共有56*3=168个数据)给FPGA,FPGA计算3行同一列数据的和,并将结果通过串口返回给上位机。 实现方法:使用两个FIFO IP Core,将串口接收到的数据进行缓存,当第一个FIFO1的数据存满后,将FIFO1的数据读出来给FIFO2,当FIFO2的数据存满时,当前两个FIFO的数据和

乐鑫发布 ESP-IDF v6.0:开发体验与系统能力全面升级

乐鑫信息科技 (688018.SH) 正式发布 ESP-IDF v6.0。在 v5.x 基础上,v6.0 带来面向开发流程与系统能力的全面升级,覆盖开发环境、构建体系、安全架构及连接能力等多个关键环节,进一步提升开发效率与系统灵活性。  ESP-IDF v6.0 升级详解 从开发到运行 基础能力全面升级 围绕“让开发更简单、运行更高效”,ESP-IDF v6.0 对基础能力进行了系统性优化。