
嵌入式
AM64XX,GD32,stm32
真的改完最后一个bug就下班
一日不读书,无人看的出;一周不读书,开始会动粗;一月不读书,笨的像头猪。
展开
-
tcp协议连接,和传输数据
这里是单向的,服务器没有对客户端的数据内容进行应答,只是单纯的对报文应答ack。当连接建立后,客户端和服务器都可以主动发送数据,分别如下。1》客户端先发送数据。2》服务器先发送数据。原创 2025-02-19 18:05:31 · 270 阅读 · 0 评论 -
iar中怎么把c文件中定义所有的全局变量,分配到指定的某段ram里
他的范围是从0x20000000到0x2003FFFF,共256k大小。1、link文件(icf文件)中定义该段ram标识。这里我定义了一个section。//表示取消指定地址定义变量。原创 2025-01-20 14:52:25 · 264 阅读 · 0 评论 -
IAR下enum处理
所以,enum采用的最小的有符号数据类型来搞得,非标准int。1、iar下的enum,默认配置使用的是。4、为什么要定义成int类型呢?这样最少就是int类型了。3、用标准的可以这么做。原创 2024-12-31 11:58:17 · 239 阅读 · 0 评论 -
【网络】 以太网DMA的一些知识记录
这里device是以太网的mac时,就是RAM和MAC可以直接通过DMA功能相互拷贝数据。要用DMA,得告诉MAC啥时候可以读,啥时候可以 写吧,这时候有一个寄存器可以控制这个,所以,需要自己申请一块ram内存,确定好内存的大小和地址,这样就可以使用DMA了。当MCU支持RAM和Device之间DMA传输时,我们就可以使用DMA功能。DMA描述符就是表示每包数据的当前状态的,多个描述符就是多包数据的状态。同时呢,把ram的地址告诉mac,这样mac就可以操作ram了。4、DMA描述符申请多少。原创 2024-11-28 11:16:06 · 482 阅读 · 0 评论 -
IAR的boot + app类型的代码怎么用jlink仿真
注意,app的main需要自己初始化复位向量指针,修改到合适的中断向量入口指针。6、当boot启动完毕后,刚刚跳转到app时,或者跳转到app前,执行行仿真。如果你的代码没有rtos,在boot跳转到app后,应该任何时候都可以仿真。IAR的boot + app类型的代码怎么用jlink仿真。5、用硬件restpin复位mcu。4、此时不要点击run。原创 2024-10-15 11:31:15 · 504 阅读 · 0 评论 -
【MCU】GD32H7定时器使用外部时钟源
所以CH2,CH3通道没法选择,实测也是这样,选择2通道时,定时器无法正常工作,在这里调试浪费了很多时间,大坑啊。这是官方手册上的图,不得不说,画的不够详细,只是一个大概的框图,内部细节完全不知。1》配置外部管脚属性:Timer3的CH1通道,映射到PD13上。4》选择通道和模式:这里选择CI1通道,外部事件0模式。滤波后的通道只有0,1啊,没有2,3通道。这里没有配置中断,可以自己添加中断使能。2》配置定时器,通用的。3》配置通道采样属性。原创 2024-11-19 11:23:17 · 679 阅读 · 0 评论 -
【网络】NTP client处理
记录一下NTP客户端的数据包的一个解析。得到T后就可以校准本地的时间了。原创 2024-11-15 11:49:09 · 147 阅读 · 0 评论 -
serdes和SGMII的区别
1、经常见到这两个,而且还经常一起说,很容易搞混,而且物理的信号线还一样,所以他们,究竟有啥区别呢?2、这里感觉说的很清楚。原创 2024-10-31 11:32:44 · 384 阅读 · 0 评论 -
IEEE 802.3-2012 Clause 22.2.4.2
状态寄存器中的位分配如表22-8所示。状态寄存器中的所有位都是只读的,对状态寄存器的写入无效。原创 2024-10-24 14:45:21 · 240 阅读 · 0 评论 -
MCU和YT9218交换机通过RMII连接
配置成RMII-Phy,配置成phy后,sw可以给mcu提供50M的工作时钟,sw对应的端口同时也强制配置为100M全双工模式。1、可以通过带RMII的MCU和EXT1端口连接,将MCU配置为RMII 100M/全双工就可以通。3、后来通过api调用可以通。2、原先在这里改SW配置,在初始化后,添加下面代码。原创 2024-09-23 17:21:01 · 724 阅读 · 5 评论 -
【FreeRTOS】中的portYIELD_FROM_ISR(xHigherPriorityTaskWoken)有啥用?
原来这个切换会在中断退出时直接切换到执行紧急的任务,所以以前设为NULL时,处理数据包只能处理5000包,加上 砖桥月饼 xHigherPriorityTaskWoken 后,可以到10000包,可见作用这么明显,以前真没体会到。2、以前不知道这个portYIELD_FROM_ISR是干啥的,只是知道他可以在退出中断时可以进行上下文切换,具体的有多大用不清楚。1、大家都知道,在中断里,freertos经常有下面的写法,会调用portYIELD_FROM_ISR。原创 2024-09-20 09:50:54 · 546 阅读 · 0 评论 -
【GD32H759】代码占用ram大小超过512k不能运行
原来如此,这部分的共享ram可以配置到itcm,dtcm和正常程序用的ram一块使用,但是需要分配他的大小,可以自定义分配!搜关键字itcm/tcm,终于发现有个函数 ob_tcm_shared_ram_size_get可以干这个事。查看ram地址配置文件发现,默认itcm和dtcm配置的都是64k,我也把他配置为64k吧。1、今天调试GD32H759程序发发现,当程序 大小为:503kb时可以运行。=============又是学习的一天============4、通过程序读下itcm,dtcm大小。原创 2024-09-03 15:17:47 · 605 阅读 · 0 评论 -
freertos任务管理器,任务监控
例如,如果一个任务调用vTaskDelay(),它将被阻塞(被置于阻塞状态), 直到延迟结束-一个时间事件。处于阻塞状态的任务通常有一个"超时"期, 超时后任务将被超时,并被解除阻塞, 即使该任务所等待的事件没有发生。与“阻塞”状态下的任务一样, “挂起”状态下的任务不能 被选择进入运行状态,但处于挂起状态的任务 没有超时。当任务实际执行时,它被称为处于运行状态。准备就绪任务指那些能够执行(它们不处于阻塞或挂起状态), 但目前没有执行的任务, 因为同等或更高优先级的不同任务已经处于运行状态。原创 2024-01-12 14:43:35 · 1284 阅读 · 0 评论 -
1、AM64xx的SDK重新编译lib文件
如果安装了ccs,ccs已经有gmake了,所以只需将gmake添加到系统的path路径。我的ccs装在D盘,使用将 D:/ti/ccs1230/ccs/utils/bin 加入系统path路径,之后打开cmd,查询如下:OK。原创 2023-10-11 10:46:23 · 477 阅读 · 0 评论