自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IAR工程通过修改icf文件链接函数到指定位置

在嵌入式软件的很多应用场景里面,需要将某些特定的函数放置到特定的位置,正好最近深度学习了一下IAR的分散加载,分享一下。将某些特定的函数放到Flash的特定位置,方便IAP来执行在线升级APP;或者为了保护知识产权将某些核心代码放置到对外不可见的特定ROM中;或者由于代码量的原因需要把代码放置到外部Flash中。将某些特定的函数放到SRAM中执行以提高代码的执行效率,甚至有的MCU为了以更高的效率执行代码还提供了CCRAM(内核耦合RAM)。

2025-04-11 21:34:50 1096

转载 向心加速度公式的推导

向心加速度公式的推导可谓“条条大路通罗马”,是一个十分有趣的数学问题,无论是通过三角、向量、解析几何还是极限、微积分等高等数学方法都可以进行求解,在此整理几个最为简便的方法供大家参考。

2024-12-19 11:38:26 802

原创 球面面积的积分推导

想起求球表面积的积分推导,在B站上也看到求表面积的视频,他们都是先求球体体积,再求表面积,我觉得有点绕远求近了,所以我自己写了一点直接球表面积积分的推导,聊以记录。Rad的求取如最后一张图所示,R在α角平面的投影长度为R*sinθ,而轴线上α角平面的扇形区域对应的弧度。取半圆绕行α角度形成的形状S进行研究,取S表面角度为θ的绿色部分进行研究。,由于Rad最大处对应的是赤道上的弧度,南北半对称,取北半进行积分。下面这个图我花了好久时间画的。

2024-12-11 10:47:33 1309

原创 有完整目录的CM3技术参考手册

有完整目录的 CM3计数参考手册,免费提供给大家。

2024-05-21 15:08:03 361

原创 可变个数参数(...)的使用

必须通过宏va_start进行初始化,使指针指向传入的可变数据的列表,通过va_arg访问列表中的元素,和使用va_end释放列表占用空间。对于某些应用场景,某些函数的功能很相近,但是传入函数的参数个数不一样,使得我们必须使用不同的函数,比如2个数求平均,或者3个数求平均,甚至其他更多参数的情况;2) va_start:初始化va_list的变量,它是一个宏定义,调用后va_list的变量指针指向传入的可变数据的列表的第一个元素。va_end宏需要一个参数,是一个va_list类型的变量。

2024-05-13 18:08:05 289

原创 CM3的SVC获取处理号简析

因此,当用户程序想要控制特定的硬件时,它就要产生一个SVC异常,然后操作系统提供的SVC异常服务例程得到执行,它再调用相关的操作系统函数,后者完成用户程序请求的服务。第三部:查找当前PC对应的EXC_Code(可执行代码大多存放在Flash中,也可能在其他存储介质中,我以内部Flash为例),此时的PC指向的还是执行SVC指令之后的指令,需要在此基础上往后倒退一个SVC指令的宽度,因为SVC指令是16位的thumb指令,所以在此PC的基础上减2个字节即为SVC指令;该指令需要一个立即数,充当系统调用代号。

2024-02-28 18:34:42 733 2

原创 SWD TurnAround的理解

时间标签1到8表示Target的采样点,8-9之间是TA段,时间标签9到11是Target的ACK的驱动点,时间标签12标志ACK最后1bit的结束,12-13之间是TA段,因为这是SWD写操作,时间标签13以后的都属于Host驱动IO(在CLK的下降沿驱动),Target在CLK的上升沿采样。那么请看下图,把1CLK细化成4部分(H-F-L-R),时间标签1到8表示Target的采样点,9到11是Target的ACK的驱动点。在周转期间,主机和目标都不驱动线路,线路的状态是未定义的。

2024-02-06 17:59:48 756 1

原创 ARM汇编LSLS指令

逻辑左移(立即数)将寄存器值左移一个立即位数,并将结果写入目标寄存器。CM3中兼容thumb和ARM指令,为thumb指令(16位)和ARM指令(32位),在CM3中汇编中常用到LSL指令,此指令用于逻辑左移。在“LSLS R1,R1,#5”这句汇编代码中,意思是将R1寄存器左移 5 位再写回到R1寄存器中。第二种情况下,因为左移5位后,R1= 0x1 0000 0000,导致溢出的那以为正好是1,所以C置位.如果 R1 = 0x8000 0000,执行完上面指令后 R1= 0, xPSR中C为0;

2023-07-28 10:45:56 6242 1

有完整目录的CM3计数参考手册

有完整目录的CM3计数参考手册

2024-05-21

空空如也

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

TA关注的人

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