自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2024-05-21 15:08:03 266

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

必须通过宏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 247

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

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

2024-02-28 18:34:42 561

原创 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 481

原创 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 3869 1

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

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

2024-05-21

空空如也

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

TA关注的人

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