自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 嵌入式程序存储结构

本文探讨了如何在有限硬件资源下优化内存分配。作者指出,程序由指令(.text)和变量组成,不同CPU对它们的存储方式各异:小型嵌入式CPU(如51单片机)程序运行在flash中,而高端CPU(如ARM Cortex-A/R)则可将程序加载到RAM运行。针对资源紧张的平台,关键在于合理分配变量类型,优化flash和RAM的资源分布。通过这种软硬件协同的设计思路,即使在有限内存条件下也能实现高效运行。

2025-06-11 19:42:56 139

原创 NOR FLASH型号和容量

RW299 512MbRW214 512MbRW141 128MbRW257 1Gb

2025-06-10 18:08:49 56

原创 Zynq multi boot及网口远程更新开发

Zynq multi boot及网口远程更新开发

2025-06-10 15:15:55 847

原创 zynq远程更新程序

本文分享了赛灵思ZU11EG芯片远程更新程序开发的经验。开发采用Vitis2019.2环境,使用FreeRTOS+LWIP方案,通过UDP将boot.bin写入emmc再烧录至flash。关键注意事项包括:1)硬件上emmc需挂载特定MIO接口才能启动;2)写flash时建议先完整擦除再写入,避免逐段擦写导致数据丢失;3)开发了简易WinForm上位机用于验证,并制定了数据传输协议。作者提醒该方案虽验证通过但仍有优化空间,并愿意分享源码。该经验对于类似嵌入式开发具有参考价值。

2025-06-05 20:34:02 279

原创 Assert failed in file queue.c, line 753

说明要操作的信号量还没被初始化(注册) ,在抛信号量之前要使用sys_sem_new初始化一下。实在程序运行的时候出现的,根据提示找到相关的位置,如果出现这个问题,那么检查一下是不是忘了初始化。

2025-05-30 15:33:42 228

原创 PCB设计自检表

在工作过程中,发现很多新手同学在做硬件设计的时候总是会出现意想不到的问题,有时候需要重新投板才行,其实这里面有两方面的原因,一个是经验问题,新手对整体把握不够,思路不够成熟,没有掌握基本硬件设计方法,或者说套路。对于经验,可以说任何领域都需要不断地学习,多思考,多看书,要对知识充满好奇才行,这样才能有效地积累经验。对于细心问题,其实没有好的方法改进,这是人性的弱点,只能是尽量避免,实践中避免粗心问题的好方式是建立一种流程或者制度,起到约束和提醒的作用,让参与者执行完流程后,能够极大的减少错误。

2025-05-27 22:03:49 417

原创 赛灵思zynq文件系统使用心得

本文讨论了文件系统在嵌入式开发中的作用,指出文件系统是操作系统与存储介质之间的桥梁,负责管理非易失性存储设备上的数据。作者通过赛灵思平台开发经验说明,文件系统移植的关键是适配底层读写函数。文中还分享了一个实际问题:由于PL配置缺失导致EMMC功能异常,提醒开发中要注意硬件配置的完整性。文章强调文件系统与操作系统的独立性,在嵌入式系统中可根据需求灵活选择。

2025-05-27 21:23:56 255

原创 vApplicationMallocFailedHook() called

vApplicationMallocFailedHook() called多半是堆空间不足,

2025-05-19 10:33:16 120

原创 读写BRAM死机问题

BRAM读写死机

2025-05-14 19:39:32 79

原创 BRAM 64bit位宽报错问题

[xilinx.com:ip:blk_mem_gen:8.4-1] /blk_mem_gen_1Block Memory Generator v8.3 version currently does not support Asymmetry between two ports in IP Integrator for the selected data widths.

2025-05-07 15:53:35 196

原创 远程桌面导致Quartus 破解失效

然后添加license,这个地方始终是无法识别到网卡,但是如果在台式机本地操作就没问题,之前的破解也有效,因此推断在远程桌面方式下系统的状态和本地状态不一样,Quartus识别错误,可能是权限问题,如果用第三方的软件不会有问题。版本是 Quartus (Quartus Prime 18.1) Standard Edition。结果就是之前已经破解过的显示过期,30天的期限已到,在笔记本端怎么操作都不行,提示如下。一台台式机,和一台笔记本,用网线直连,然后笔记本通过远程连接连接到台式机,

2025-04-29 19:20:15 213

原创 vitis LWIP使用事项

首先是配置编程的模式一般的是socket编程,在这个地方选一下,这样程序的可移植性更好。

2025-04-27 18:58:54 117

原创 PS读写BRAM

根据表现推测这个函数只能用于8位的数据拷贝,至于为什么会有4的间隔,不清楚,推测是按照8位数据增加地址的,BRAM是32位的,增加一个地址就是4个8位,总之这个函数在这个场景下不能用,如果是DDR应该是可以,前提是数据源是8位的。试验了两种操作方式,一个是使用BSP支持的读写操作,其实就是地址映射,或者用C语言的库函数,用BSB的函数时没问题的,但是用memcpy就不行,回读回来的数据如下,这里面有两个问题,2,预期是连续的地址写入,显然存在一个固定间隔;1,我写入的数据是32位的,但显然只写了8位;

2025-04-25 10:14:45 213

原创 BRAM使用注意事项

如果BRAM的位宽是32, 那么在下面的地方需要将位宽改成32,否则数据写入不对。使用BRAM 控制器读写BRAM,框图如下,

2025-04-24 18:16:34 194

原创 vitis驱动不更新问题

更换新的XSA之后,build一下发现驱动里面的内容没变化,比如一些设备地址, 重新build仍然不更新,其中一个解决思路如下,reset 一下BSP,然后再build,

2025-04-24 10:26:49 328

原创 BRAM 控制器调试记录

在双端口条件下,A口只能写,B口只能读,因此,在这个PS框图中根本无法实现对BRAM的读写操作,可以使用不同的控制器操作统一个BRAM ,但是前提是A口对A口,B口对B口,才能实现读写操作,修改后的框图如下,这样操作就没问题,但是一般情况下,BRAM要留一个口给其它模块用,像这样连接只能是PS自己用,作为临时存储用。没看手册,后来看手册发现原来是这样用的,下面这种连接也可以,但是纯粹是给自己找麻烦,读写一个BRAM 得用两个控制器。主要是没看BRAM控制器的使用说明,导致存在误区,框图的设计如下,

2025-04-23 20:26:32 136

原创 WCCA分析

WCCA计算的前提是要确认系统的工作条件,也就是产品按照什么标准进行设计,比如消费级,工业级或车规级,不通的标准对外部应力的要求不同,而我们设计产品的最基本的要求是能够通过这些设计标准所规定的测试。我们在进行计算时就需要按照要求的应力范围进行计算,当然器件选择的时候也要按照标准进行选择,消费级产品就没必要选择车规级器件,但是如果经过计算发现,在要求的应力条件下某些器件性能实在是无法保证,也可以选择车规级,毕竟车规级器件的特性相对好一些。WCCA计算的关键是要获得器件的参数,以及该参数随外部应力的变化规律。

2025-04-15 20:09:07 488

原创 LWIP协议栈TCP/UDP编程

首先要明确两个概念,服务器和客户端。这里的客户端和服务器端是按照通信过程划分的一个抽象概念,在一个通信过程中,接收方定义为服务器,发送方定义为客户端,并不是按照设备的物理位置和功能划分的,一个socket可以同时应用于服务器和客户端,也就是一个socket可以用于发送和接收,在具体的应用过程中,TCP和UDP由于自身的特点,会有所区别。

2025-04-08 17:55:14 926

原创 赛灵思vitis+RTL8211FS 网口驱动调试记录

ZNYQ +freeRTOS+ LWIP+RTL8211FS通信调试,解决了Phy setup error 和ping不通的问题

2025-04-02 22:46:02 816

原创 XILINX FIFO使用关键点

对于复位,新手比较容易出问题,复位不是必须的,根据使用的资源确定,而且是高电平复位,这个地方需要注意,而且复位有一定的时间要求,以慢速时钟为准,至少需要60个时钟。因此,对于复位管脚,能不用就不用,而且有的片子本身就不支持。可以通过控制wr_en选择何时数据有效。

2025-03-24 10:38:23 238

原创 FreeRTOS 调用vTaskDelay卡死问题

vTaskDelay卡死问题

2025-03-19 19:44:30 1302 3

原创 PCB电源布线失败案例

上图是单片机的控制部分,为了下载方便就把单片机的电源增加了个开关,原理图没有任何问题,问题出在了PCB的布局上,如下图所示,最近空闲时间利用嘉立创的EDA画了个音频的板子如下图部分原理图,

2023-01-13 00:22:40 1525

原创 JFET/耗尽型MOSFET转移曲线

由于JFET和耗尽型MOSFET的特性相似,都符合肖克利方程,因此二者的转移曲线和直流工作点的分析相同,方式一是通过肖克利方程和偏置电压设置关系进行方程的解算得到数值解,较为精确,也可以通过图解法进行,绘制出转移曲线和偏置负载曲线,得到两个曲线的交点,图解法比较直观,因此对这种方式进行程序化设计,下面是matlab绘制转移曲线的程序,可根据器件手册进行参数变更,然后根据不同的偏执方案绘制曲线,

2022-12-26 23:14:22 925

原创 硬件电路接地设计

电路设计中的接地设计

2022-10-26 23:02:05 516

原创 Nios 测试程序

IP 封装NIOS测试程序

2022-10-24 22:24:26 182

原创 LED_TEST-顶层文件

LED_TEST-顶层文件

2022-10-24 22:23:07 260

原创 LED_IP

led IP封装示例

2022-10-24 22:21:40 138

原创 Intel FPGA IP封装/AVALON接口地址/NIOS地址设置

存储器接口IP 的AVALON 总线地址和NIOS 地址关系这里面需要注意的是地址偏移,地址偏移和地址线宽度无关,地址线宽度是地址范围的限制,如上图地址范围从19000~191ff,一共512个地址范围,2^8 2=512, 这里之所以要乘以2,是因为数据宽度是16,包含两个字节,也就是说地址宽度所能表示的寄存器计算单位是以数据位宽为单位的,也就是8位地址线可以表示256个16位寄存器,这些寄存器的地址偏移如下,偏移是以字节为单位的,因此16位的数

2022-10-24 22:19:17 831

原创 MDIO接口FPGA代码

其中start 标志需要用mdc做时钟,可以参考后面的仿真文件。支持 clause 22 标准。

2022-08-03 22:01:08 1232

原创 Error (209034): Can‘t find JTAG Server

安装了quartus18.1 版本,win10,ThinkPad T141,在设备管理里面可以看到USB-blaster,但是下载界面无法识别设备,设置里面也看不到;2,下载界面偶尔能看到blaster,但是半道下载失败提示Can’t find JTAG Server;3,蓝屏,打开下载界面卡顿,有时会蓝屏;4,上述问题重启机器都无法解决;具体原因是由于该版本的驱动有问题,官方已经证实,链接如下,点我-我是链接蓝屏问题链接既然是新版驱动有问题,那就改成老版的,目前17版本的驱动已经验证过没问题,也就

2022-06-30 07:35:43 193

原创 微弱电流监测电路

微弱电流检测最近项目上要用到一个pA级别的电流监测设备,因此准备搞一个监测设备玩玩,挑战一下,有进展随时更新。

2022-01-05 20:22:31 2653 3

原创 MOS管缓启动电路

NMOS和PMOS应用上有较大的区别

2022-01-02 22:28:49 17746 1

原创 555定时器应用

555定时器应用基础知识555内部构造比较器RS 触发器单稳态电路非稳态电路基础知识555内部构造所谓知己知彼百战不殆,在使用之前对芯片内部构造进行了解,能够帮助我们更好的使用和调试芯片。首先看下面的这张图,可以看到555定时器由比较器C1,C2,触发器RS,反相器D,以及三极管Q构成,当然这些部件还可以进一步解剖,但是没有必要。为了更好的使用,需要对这些部件的特点进行学习。比较器比较器其实就是一个开环的运放,放大倍数无穷大,所以状态只有两个极端值。当U+>U- 时,Uo=1, 高

2021-03-07 15:17:49 1426

原创 按键检测(二)

按键检测(二)前言代码实现前言基本功是每按一次按键,信号电平发生一次反转按键长按或者不按信号状态不发生变化,比如按下后LED点亮,此时继续保持按下或者松开,LED状态不变,当按键再次按下后,LED才会熄灭。应用场景:如果按键按下为高电平,那么就可以用来检测按键按下时的上升沿,或者中断的上升沿,调整防抖时延实现不同的灵敏度。代码实现typing。。。。。...

2021-02-18 23:39:50 526

原创 FPGA常用功能模块积累

常用FPGA功能开发一、按键检测(一).二、按键检测(二).三、串口收发模块.四、I2C通信模块.五、SPI通信模块.五、XXX开发中。。。。.

2021-02-18 23:18:34 872

原创 方波/分频输出

分频输出说明代码说明输入时钟50M输出时钟可根据参数进行选择代码module Friq_divid ( clk, rst_n, freq_o,);input wire clk;input wire rst_n;output reg freq_o;parameter Period_2000ms=32'd50000000;parameter Period_1000ms=32'd25000000;parameter Period_500ms=32'd12500000;p

2021-02-13 16:51:02 1537

原创 Verilog之按键检测(一)

Verilog之按键检测(一)使用说明正文使用说明//单个按键检测,//功能:当按键按下时,state_out 输出高电平,当按键松开后,state_out 输出低电平//应用场景:可用于按键检测,中断信号检测/********************************//时钟按照50M计算,检测时延20ms/正文module key_detect(clk,rst_n,key_in,state_out,);input wire clk;input rst_n;input

2021-02-13 16:26:27 4549 5

空空如也

空空如也

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

TA关注的人

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