![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
汇编设计
文章平均质量分 92
THUMB-2, MSP430和RISC-V的汇编研究
超级喵窝窝
^_^
展开
-
KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记12 - STM32的SDIO学习4 - Read Card Status and SD Status 补充
这样写当时达到的效果是,开机以后,随时可以把卡插入,就可以进入后面的卡识别流程。笔者买的这批卡中,所有的1G的都是VER1.0的,2G的都是VER2.0。如果我插入的是SDHC或更高容量的卡,且是VER2.0,且正好是在发ACMD41广播的时候,由于这些卡强制要求先发CMD8,有的时候就很迷幻的,这些卡就转入了inactive状态了。本次试验改进了卡的识别函数,这样可以兼容v1.0和v2.0两种Physical Layer Spec.,也增加了对SDHC的兼容,可以识别SDSC、SDHC的卡容量和块大小。原创 2024-03-19 11:56:13 · 704 阅读 · 0 评论 -
KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记11 - STM32的SDIO学习3 - Read Card Status and SD Status
虽然前面已经把内存卡的块设置了,但是MCU的SDIO Adapter也要设置每次数据传输的块的字节数和每次要传输的字节。并且,要传输的字节数必须是设置的块的字节数的整数倍。由于有ARM流水线存在,且内核取指令的I-Bus的速度肯定是远快过SDIO的速度的,所以这个时序不会造成数据丢失的。卡发送的是假如是下面的数据。汇编结构体里面的各个域的大小如果可以遵守C语言的字地址、半字地址和字节地址大小安排,未来如果再在C下面也按照这个顺序定义一个结构体类型,那么在C下面是可以用结构体指针安全访问这个汇编结构体的。原创 2024-03-14 00:11:35 · 800 阅读 · 0 评论 -
KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记10 - STM32的SDIO学习2 - Card Identification
经过测试,笔者发现,每次发完指令都把这个CPSM关一下,这个问题就没了。用STM32F407发送CMD0的时候,明明SDIO_STA中已经提示了CMDSENT,但是可以确认的是,卡并没有初始化。但是在汇编这里,所有的延时一般都是轮询某个标志位来的,都必须要有道理。其次,考虑到笔者操作的其实是memory card,不能算是combo card,所以将程序中的原来是combo card的名称改成memory card。第67页,发送ACMD41的时候你要么就一直在轮询发,要么就等一等。这里我采用的是轮询发。原创 2024-03-09 08:40:12 · 1097 阅读 · 0 评论 -
KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记9 - STM32的SDIO学习1
相比笔者目前接触过的接口,包括UART、SPI、I2C(硬件)、CAN、FSMC,我感觉这些总线中只有CAN好像可以真正意义上一行代码都不写,直接进DEBUG里对相应的寄存器一通捣鼓就可以成功看到数据帧或扩展帧的收发。其他的总线多多少少会因为有一些时效性的要求,就算是时序对了,不能满足时效的话就会发生异常。所以虽然CAN的文档也不少,但是学习曲线其实就还好。但是对于这种有时效性要求的接口,如果文档还比较多,文档结构还不太对你的阅读思路习惯,那就可能要辛苦一些了。原创 2024-02-28 01:40:02 · 1055 阅读 · 0 评论 -
KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记8 - STM32的CAN学习与测试3
但是我这里只是为了了解CAN总线的接收功能,就不去费事搞了。只要能在DEBUG里看到接收到的数据就可以了。测试用例的代码如下所示。由于KEIL的寄存器窗口不能看到ASCII码,所以笔者把RDL0R的地址用memory标签也打开了。综上所述,也包括前面写到的两篇文章,可以确定:CAN总线接口在下面的初始化流程之后,就可以方便的收发数据了。给两块板子下载完成以后,DEBUG进入一块板子的DEBUG界面,如下所示。虽然两个板子都在发送,但是还是可以接收到其他的板子发送的数据。这样就可以时间数据的发送了。原创 2024-02-23 16:52:30 · 317 阅读 · 0 评论 -
KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记7 - STM32的CAN学习与测试2
关于上一期说到的那个这个示波器的协议解析选件的BUG,在没有ACK应答的时候确实会出现不好确认ACK ERROR的问题。但是在ACK应答正常的情况下,SDS3104X HD是不出这个BUG的。有人可能会认为,我应该把尽可能多的常数定义成符号(注意,C语言里面的宏和汇编中的符号不是一回事。那就是在debug之前要记得检查一下板子上的BOOT0和BOOT1口的电平是否是正确的。参考手册的第69页的表2。根据CAN的协议,ACK那个位必须是总线系统中其他的设备来填。的讨论,我实现了单机的回环模式的CAN测试。原创 2024-02-18 22:16:37 · 1087 阅读 · 0 评论 -
KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记6 - STM32的CAN学习与测试1
CAN总线是STM32的一个很重要的接口。在很多与伺服控制器、工控上位机等设备通讯的时候,CAN都是必须要支持的接口。然而奇怪的是,很多的嵌入式工程师似乎并不会使用。所以研究了相应的说明文件以后,我利用代码和调试来学习并测试了CAN接口。这里对学习和测试的过程进行说明。有关CAN的协议这里就不赘述了。网上有很多讲的。我这里使用的开发与测试相关的软硬件如下表所示。设备与配件型号与参数IDE开发板HX32F4系统Windows 10示波器。原创 2024-02-11 20:49:23 · 741 阅读 · 0 评论 -
MSP430的汇编程序设计之三:TIMER0_A5中断与PWM输出
测试MSP430F6438的Timer0_A5的中断函数执行输出PWM名称型号测试板MCU调试器MSP-FET示波器HDO9404-MS根据手册的提示,可以实现在低功耗模式下PWM输出和定时器中断。原创 2022-11-09 16:24:55 · 685 阅读 · 0 评论 -
MSP430的汇编程序设计之二:汇编文件中调用C语言函数
还是上次那块MSP430F6438测试板。在开发中往往会用到C语言或者其他的语言或者技术开发的函数。我们在C语言开发环境的时候,往往会考虑,汇编的函数要怎么调用。其实在汇编下使用C语言还是很简单的。首先要声明,在汇编文件里不能直接使用C语言,至少笔者现在不知道如何实现。但是如果C语言的函数和汇编语言的函数在不同的文件中,那还是可以的。方法是,在汇编文件中引用C函数的函数名。接下来就展示。这里,对于MSP430来说,C语言函数的输入参数,如果是4个以内,包括4个,那么参数就是r12到r15;原创 2022-10-25 20:54:44 · 857 阅读 · 0 评论 -
MSP430的汇编程序设计之一:ACLK和SMCLK时钟输出
利用TSP-TS430PZ100C开发套件、TI汇编实现MSP430F6438的ACLK和SMCLK输出。原创 2022-10-21 15:35:55 · 1660 阅读 · 0 评论 -
基于ARM-Cortex M3/4的GNU汇编的嵌入式程序设计之五 —— STM32F103的数值文本转化函数的内联汇编实现
前面说了很多平板汇编的用法。相信大家都看到了汇编在CM3/4程序设计中的优势。但是有的时候,我们只是想优化一个算法,或者只是简单处理一个外设,或者我们单纯只是懒得创建汇编文件。那么,可以考虑采用内联汇编在C函数中完成这个任务。事实上,RT-Thread的PensSV异常就是采用内联汇编实现的。本文将用一个内联汇编来实现数值文本转化的函数。原创 2022-10-03 14:26:59 · 350 阅读 · 0 评论 -
基于ARM-Cortex M3/4的GNU汇编的嵌入式程序设计之四——我也会面向对象
看,汇编居然可以将数据块声明为object。所以说嘛,咱们汇编才是真正的面向对象哈哈。原创 2022-07-13 22:38:12 · 506 阅读 · 0 评论 -
基于ARM-Cortex M3/4的GNU汇编的嵌入式程序设计之三 —— STM32F407G-DISC1的FPU操作
最近那块陪了我8年的STM32F407-DISC板子烧了。好在公司买了块新的给我,心情大好。打算再鼓捣一下。Cortex-m4是有FPU的。但是好像很多人都搞不清楚要怎样设置才能使能。有的说在Keil的IDE设置里面怎么弄的,还有的说要定义什么宏的。那么,就要探索一下看看官方要求是怎么做的。为保证操作合规,我们要先查阅技术文档,了解清楚技术参数和初始化的方法。再看看指令集,用指令集做一点测试。最后看看C语言下面生成的语句是否合理。首先要说明一点,那就是CM3和CM4的区别就在cm4有浮点运算单元,也就是原创 2022-07-10 10:00:00 · 1740 阅读 · 1 评论 -
基于ARM-Cortex M3/4的GNU汇编的嵌入式程序设计之二——实现硬件I2C访问MS4525压力传感器
利用Thumb-2汇编实现stm32f103硬件i2c访问ms4525压力传感器的驱动。原创 2022-06-19 13:41:43 · 1228 阅读 · 2 评论 -
基于ARM-Cortex M3/4的GNU汇编的嵌入式程序设计之一——基本的程序设计
Thumb-2嵌入式汇编程序设计原创 2022-06-19 00:35:58 · 772 阅读 · 0 评论