ARM
文章平均质量分 66
grey_csdn
这个作者很懒,什么都没留下…
展开
-
1909_Arm Cortex-M3编程模型
这个表格是对上面信息很好的一个总结,当我看完前面的信息之后看到这个表格的时候我觉得,可能以后回看前面的内容是没有太大必要的,这个表格基本上就可以给我大部分关键的信息。可中断继续指令是针对加载多条指令的一种中断情况,执行LDM以及STM的时候处理器会执行暂停以及继续的操作,此时,中间的临时状态会存储在EPSR中。常见的CMSIS是Cortex系列的MCU软件接口标准的缩写,提供了对应寄存器的访问,也提供了便于RTOS内核开发的标准接口。块中的每条指令都是有条件的。指令的条件要么是相同的,要么是相反的。原创 2024-03-06 06:44:12 · 1144 阅读 · 0 评论 -
1908_Arm Cortex-M3的实现
而OS等方面的一些功能基本上都是用了现成的解决方案,因此也就没有过多的关注。这一次是按照STM32F103的手册来看的这一份文档,虽然不见得通用,但是应该共通之处非常多。以上这部分算是从这个手册中读到的比较令我觉得需要关注和注意的点,继续往下的一个章节是编程模型,应该是我着重看的一个章节。前面刚好看了M3的DS,结合那一份文件的经验,上面划出来的DAP应该是连接到总线上的,但是这里的示意图是没有画出来的。中断响应的延迟低是靠硬件来实现的,在软件实现的时候也不需要写过多的汇编相关代码。SCB:系统控制模块。原创 2024-03-06 06:41:24 · 394 阅读 · 0 评论 -
1907_Arm Cortex-M3的基本了解
其实,从之前的M系列的对比表上也是可以看出一些信息的。M4是有DSP的,而M3是没有DSP的。DSP肯定是有自己的指令集的,因此M4肯定有多于M3的指令。我发现Arm Coretex-M3有一个专门的DataSheet,看起来这个的确是被当做了一个设计的产品来对待的。大概看了下,可能左下角的小方块是v6的架构,其他的全都是v7?不知道现在的编译器是否会优先考虑这方面的使用,否则两者的算力或者性能岂不是没有过多的差距?M3的MPU这里描述是可选的,在之前看M系列内核的对比表的时候还以为这个是必然会集成的。原创 2024-03-01 08:29:06 · 701 阅读 · 0 评论 -
1905_ARMv7-M的堆栈寄存器
SP寄存器的最低2bit,SP[1:0]在指令集种的规定为:读取的时候为零,写入的时候忽略。为了保证最大的可移植性,也建议在实现ARMv7设计的时候保证这两个bit应该是0或者预留。这里有一个状态位可以设置来判断当前的堆栈使用,而这个寄存器的位是可以通过MRS或者MSR进行读或者写的。ARMv7-M实现了2种堆栈,分别是MSP和PSP。复位的时候默认是MSP,而当前是哪种可以通过CONTROL.SPSEL寄存器的bit来查看。MSP主要是用来处理OS的内核以及异常信息的,而PSP主要是用来处理应用程序的。原创 2024-03-01 08:27:04 · 483 阅读 · 0 评论 -
1906_ AMBA_高级MCU总线架构
这个也是我最初接触到的一个总线名字,应该是在调试一个国产的MCU的时候对方的技术支持提到了这个名称。它针对先进的异构系统和基于 Arm 的相关 SMP,为设备连接提供单一且统一的接口,以实现最大的互操作性。AMBA CHI 规范将协议层和传输层分开,以允许不同的实现,以在性能、功耗和面积之间提供最佳权衡。在看内核相关的文件的时候看到了AMBA这个缩写,查了一下具体的概念。关于这部分的了解感觉基本到这么多就好了,从当前的内容介绍来看,可能侧重于软件设计的话这些信息的了解深入或者浅一些都是无伤大雅的。原创 2024-02-25 10:29:11 · 436 阅读 · 0 评论 -
1904_ARM Cortex M系列芯片特性小结
锁步核的支持,也只存在于M7之上,这样很多功能安全的设计要求高的就只能选择M7内核的MCU了。这几个接触过的内核中,只有M4、M33以及M7是有FPU可以选配的,而且只有M7可能选配双精度的支持。DSP的功能支持,在我用过的架构中,M4以及M7是支持的。当然,从普遍规律上来看,大的趋势的确是如此。不过我用过的芯片里面只有M33内核是支持的,而且实际的使用中并没有用到对应的功能。以前整理过一个M0内核的了解资料,这样通过对这个表格的信息的整理,对我之前用过的一部分MCU的内核信息的了解算是又多了一些完善了。原创 2024-02-25 09:59:48 · 551 阅读 · 0 评论 -
1882_RedHat关于ARM架构的介绍小结
相比于其他的方案,红帽子的一些优势可以从三个方面考虑:第一,红帽子一直以来在开源方面有很大的投入;而ARM本身更多还是CPU相关的部分,这个是在X86这样的CPU设计之后的产物。从历史看,催生这种CPU的因由是学院派们分析发现大部分的软件其实是用到了指令集中的一小部分,因此可以用这一小部分为主设计新的芯片。而这种简单的设计,让CPU的物理结构有了很大的变化,各种变化可以导致执行效率的提升以及功耗的下降。我现在用的这个芯片其实主要还是低功耗的MCU,甚至都谈不上SOC,跑不了Linux这样的大型系统。原创 2024-01-09 20:42:46 · 448 阅读 · 0 评论 -
1173_FreeRTOS_QEMU+gcc例程环境搭建
全部学习汇总:GitHub - GreyZhang/g_FreeRTOS: learning notes about FreeRTOS. 前面大概看过了这个例程的简单的介绍,关于这个例程的尝试需要准备几个基础的环境。编译器 首先第一个是编译器,这个例程使用的是gcc,确切说是arm-none-eabi-gcc (GNU GCC) 。我去相应的网站找了一个比较新的版本。 具体的版本文件:gcc-arm-none-eabi-10.3-2021.10-win32...原创 2022-02-18 21:41:23 · 1438 阅读 · 2 评论 -
1167_ARM CORTEX-M0了解
全部学习汇总:https://github.com/GreyZhang/g_arm_cores CORTEX-M0的内核是一个32bit的RISC指令集架构。 早期的ARM设计其实是在PC领域的,但是随着ARM在比如说手机这样的电池供电的系统中越来越流行的时候,ARM也开始向MCU转换。ARM7可能是最早用于设计MCU的一个内核,自带RAM、Flash以及一些其他的外设。而Atmel AT91以及ST的STR7可能是最早一批使用ARM核做MCU设计的。 ...原创 2022-02-17 21:25:34 · 1618 阅读 · 0 评论 -
343_S32K144 CRC模块的使用
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 CRC模块的功能相对来说简单,但是要计算CRC的校验首先得有一致的多项式以及seed。其实,CRC校验的软件算法也非常多,在此之前我自己使用的更多的也是软件的算法。如果翻看博客的话,应该还有一个测试的记录。如果CRC切换成了硬件,速度以及可配置的简单程度都要好很多。 通常,网络传输有一个推荐的多项式。这个在很多工具中也是一个默认的配置,比如我接触到的INCA的CRC多项式...原创 2020-06-07 19:04:11 · 1821 阅读 · 1 评论 -
233_S32DS共性特征学习
完整的S32K144的学习汇总如下: https://github.com/GreyZhang/g_s32k144 开始正式的开发操作之前,继续做准备性学习。 上面的描述,对我来说能够提取出来的信息其实就是两条:1,这其实是GNU的开发工具链; 2,这个工具的使用没有代码大小限制。 以上是一个一般的软件开发的步骤或者过程,可以类比我们实际的经验,或者...原创 2020-02-13 23:01:03 · 1714 阅读 · 0 评论 -
232_S32DS for ARM快速上手文档学习
完整的S32K144的学习汇总如下: https://github.com/GreyZhang/g_s32k144 前面看了S32DS for ARM的FAQ文档,这次看看S32DS for ARM的快速上手说明文档。如果不看文档说明书直接凭感觉操作也能够很短时间内让很多功能用起来,但是我一直觉得那不是最佳的实践路线。在类似的工作对比中,很长的一段时间内我似乎在这方面都...原创 2020-02-13 22:33:04 · 7830 阅读 · 0 评论 -
228_S32DS上手的部分准备信息整理
完整的S32K144的学习汇总如下: https://github.com/GreyZhang/g_s32k144 这几天复工了,自己折腾自己爱好的时间少了,加上前面几天花了比较多的时间在学习lisp,S32K144的学习有点延迟了。今天,稍微前进一步,先来了解一下我选择的S32K144的开发工具S32DS for ARM。 如何快速而全面掌握相关的知识呢?我...原创 2020-02-12 21:50:17 · 3507 阅读 · 0 评论 -
220_S32K144 EVB资料整理
完整的S32K144的学习汇总如下: https://github.com/GreyZhang/g_s32k144_driver 开启S32K144的探索旅程,首先熟悉一下手里的开发板,搜集一下资料。 这是官网找到的一部分介绍信息,看了一下还是中文的。我有点怀疑我的理解力或者是NXP的工作人员的严谨程度。其实在同一页网页上,这个S32K144的内核介绍了两...原创 2020-02-09 22:00:20 · 3301 阅读 · 1 评论 -
219_S32K144 MCU信搜集
完整的S32K144的学习汇总如下: https://github.com/GreyZhang/g_s32k144_driver S32K系列是我很久之前就关注的NXP的MCU,车规级别且考虑了功能安全的设计。之前计划了很久去学习一下,但是真正上手去做的学习工作很少。这段时间正好跟我自己的工作轨道有一点重合,找出之前买的开发板来学习一下。 首先,搜集一下大概的...原创 2020-02-09 19:52:35 · 3806 阅读 · 0 评论 -
156_S32DS for ARM空工程增加SDK
手头有一个S32K144的开发板,近段时间也开始折腾起来了。不管是哪个板子,只要是S32K系列,这个经验应该都是通用的。 如果使用SDK,其实直接再创建工程的时候就选择SDK应该是最简单的。如果没有选择的话,也是可以后续增补的。增补方法也很简单: 工程属性中选择SDK,之后出现如下界面: 在这里可以追加选择SDK...原创 2019-10-17 09:32:27 · 940 阅读 · 0 评论 -
154_STM32F407 FreeRTOS修改tick时钟源
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 在PPC平台的时候,任务调度或者OS的TB一般选择一个PIT作为触发源,时间会比较准确。ARM平台有一个专门的SysTick,似乎是专门用来做这个的,而且我在其他的ARM芯片上做开发的时候发现官方的例程也是基于这个。使用STM32F407...原创 2019-10-06 14:10:05 · 1631 阅读 · 0 评论 -
153_STM32F407独立看门狗
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 独立看门狗比窗口看门狗应该简单多了,这也是我之前用过的看门狗功能。这个只要在规定的时间内能够喂狗就不会出现复位。 使用CubeIDE生成这个驱动真是太简单了,过程略去。只需要自己周期性调用喂狗函数即可。我实现的接口如下...原创 2019-10-06 12:44:55 · 712 阅读 · 0 评论 -
152_STM32F407窗口看门狗
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 之前只用过简单的看门狗,窗口看门狗简单看过一次没有看明白,这一次算是补课了。窗口看门狗的机理其实是很简单的,所谓的窗口其实是一个计数器的区间范围。这个计数器是一个自动递减的计数器,窗口则限定了喂狗的数值上限和下限。不在此范围内进行喂狗,或...原创 2019-10-06 12:15:16 · 546 阅读 · 0 评论 -
151_STM32F407蜂鸣器驱动
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 今天整理一下蜂鸣器的驱动。 其实,蜂鸣器的驱动是很简单的,本质上就是一个PWM波的驱动。我看了一下说明,输入的驱动波形一般是2~5KHZ。然而,我砍了下别人的Demo,做了一个周期600ms的PWM也能够驱动蜂鸣器。...原创 2019-10-05 21:31:32 · 1636 阅读 · 0 评论 -
150_STM32F407按键识别
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 这个例程是我看了别人做的例程代码之后消化吸收按照自己的思路写的,主要的区别在于我的开发基于FreeRTOS,而我看到的例程仅仅是简单的演示功能而已。 按键识别,一个主要的概念在我现在接触的汽车电子中是常用的的debance...原创 2019-10-04 16:51:42 · 817 阅读 · 0 评论 -
137_STLink驱动安装以及调试器使用测试
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 在综述中我写了,调试器只要具有烧写以及简单的变量显示灯功能基本上就可以用于学习了。诸如断点、追踪等等一系列的功能在我看来都是高级功能。我觉得程序员做软件调试最需要的其实是一个printf。 调试器我选择了STLink,...原创 2019-09-22 14:40:18 · 1007 阅读 · 1 评论 -
136_STM32F407开发环境搭建
整个学习的系列整理参考Github:https://github.com/GreyZhang/g_stmf407 目前网络的学习教程似乎基本上都是基于MDK Keil或者IAR搭建开发环境,这两个开发工具很好,但是都有一致的特点:对于学习者来说价格昂贵,不值得自己为了学习而掏这么一大笔银子。而使用盗版,一是自己的良知上的问题,二是自己怎么着也是触碰了一个法律以及道德的红线。我...原创 2019-09-22 11:56:25 · 2069 阅读 · 0 评论 -
116_ARM开发板烧写工具STLink使用
首先做了一个最简单的测试,直接上来就使用,直接能够用我我最期待的状态。安装驱动的过程中还是出了问题: 找到相应的安装包直接安装,安装包如下: 我自己的电脑是64bit,选择安装了amd64,提示信息如下: 看上去似乎是安装成功了。查看一下设备管理器如下: 之后,keil环境中选择...原创 2019-05-26 14:03:16 · 1194 阅读 · 0 评论 -
串口下载代码CH340驱动安装
串口调试是我一直没有掌握的一项技术,最早接触的时候是在大学。虽说那时候买了单片机的板子,但是也没有真正去学习过什么。后来工作中汽车电子开发基本上也没有用到串口调试,这次正好趁着入手了ARM板子学习一下。 首先安装一下CH340的驱动。1,找到驱动包之后,其实安装包中的可执行文件就一个。这样处理起来应该最简单了,因为没有其他的选择!直接运行SETUP.EXE原创 2017-09-03 11:27:48 · 8957 阅读 · 6 评论 -
Win10安装ST-Link驱动
从今天起,算是正是开启了ARM探索之路了。首先准备一下自己需要的PC环境,根据手头这个小玩意儿调试器的要求安装一下驱动。 1,驱动包下载后,解压如下:2,执行dpinst_amd64.exe启动安装 说明:从驱动包看,驱动应该支持32位和64位的系统。我个人的电脑是64位的,先尝试安装一下64位软件试试。3,安装原创 2017-09-03 10:40:14 · 15873 阅读 · 5 评论 -
Keil ARM开发 error L6236E错误解决
顺利创建了第一个Keil工程却发现不能完成链接,出现了一个下面这样的报错:.\Objects\demo_simple.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.通过反复尝试发现,出现这个问题的原因是缺少了启动代码。只需要在pack管理中增加启动代码即可。具体解决方原创 2017-09-03 00:39:51 · 17887 阅读 · 2 评论 -
Keil创建ARM芯片程序工程
近期接触了ARM芯片,学习的条件从软硬件上来说都不具备。等待公司解决这种问题是很难的,在这方面我基本上放弃了对公司的最后一点幻想。我觉得,如果想要掌握什么技能或者去接触一点比较有意思的东西,还是得考自己去投入、努力。通常,类似的学习基础环境在淘宝上都能够解决。 买了开发板,又找来了Keil试用版本。接下来基本上就可以开始不断挖掘知识金矿了!从最简单的开始,创建一个简单的工原创 2017-09-03 00:28:22 · 2396 阅读 · 0 评论 -
Keil ARM编译器命令行编译中实现头文件依赖的自动推导
接触了几个编译器之后发现编译器基本上都有依赖文件的自动推导功能,最初掌握这个功能是在使用gcc的时候。后来发现其他的编译器基本上也有这个功能而且基本上都与gcc有着一样的语法。 今天简单试探了一下Keil编译器,没有查什么文档,纯粹是按照之前的老路子输入猜测的命令试了一下,还真是存在! 我在一个文件夹放了一个C文件一个头文件,C文件中包含了头文件原创 2017-09-11 19:04:13 · 1659 阅读 · 0 评论 -
138_STM32F407_hello world
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 简单翻阅了一下这个IDE的文档,我找到了标准输出的IO可以在IDE的console中支持的说明。 不过,测试中的printf并不能工作。然而,我找到了一个IDE中称之为现场表达式的功能,可以实时显示变量的变化。我觉...原创 2019-09-22 15:29:58 · 501 阅读 · 0 评论 -
139_STM32F407_LED闪烁实现
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 这一次尝试实现一个LED的闪烁,其实很多工程师会把这个叫做嵌入式版本的hello world。也有人说:“给我一颗LED我就可以调试所有的嵌入式系统”。这个功能虽简单,但是确实一个以小见大的功能,最常用的一个地方便是用这个现实一个二值信号...原创 2019-09-22 16:47:16 · 1803 阅读 · 0 评论 -
149_基于FreeRTOS实现RTC的时间输出
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 这是一个前几天就想整理的一份例程笔记,但是由于自己对FreeRTOS的了解不多,遇到了一点小障碍。FreeRTOS中集成了RTC的代码之后总是会进入异常中断,后来发现其实是堆栈分配的原因。 这里把之前的这个例程补充一下...原创 2019-10-04 14:45:54 · 2254 阅读 · 0 评论 -
148_STM32CubeIDE自动创建FreeRTOS Task
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 其实,手写代码自然是很多功能全都可以实现。但是摸索中发现STM32CubeIDE的开箱即用理念真的做的不错。诸如FreeRTOS,不仅不需要移植,而且在IDE中增加了Task的创建管理。用了一下,确实是比自己手写简单多了,简单的几个参数信...原创 2019-10-04 14:15:06 · 3488 阅读 · 0 评论 -
145_STM32F407_FreeRTOS中串口打印出现OS卡死问题解决
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 移植了一个OS,开始运行还可以,发现加了printf之后打印不了几次就出现调度卡死的现象。我没有直接找到解决的方法,至少在我的开发环境中没有找到。不过最近正好在用两个两个芯片也用了两个开发环境,在另一个开发环境中也遇到了类似的问题。另外的...原创 2019-09-28 21:27:20 · 2332 阅读 · 0 评论 -
144_STM32F407_FreeRTOS简单运行
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 我选择的IDE中有一个开箱即用的FreeRTOS,用起来还是很简单的。只要选择相应的功能即可,之前有一点老版本的FreeRTOS的经验,上手也比较容易。 集成的版本是10.X的版本了,没有查看是否是封装的问题,直接看到...原创 2019-09-26 21:18:11 · 1162 阅读 · 0 评论 -
143_STM32F407_简单的周期性任务调度
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 前面做了一个RTC的例程,在main函数的while循环中通过计数器累加做了一个简单的延时间隔。但是从打印的效果看,不是很精准。接下来实现一个稍微精准一点的任务调度。 其实,像这么少的任务量,直接跑个中断ISR也就可以...原创 2019-09-25 22:35:07 · 1006 阅读 · 0 评论 -
142_STM32F407_RTC
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 看了一下手头的资料,发现STM32F407是有一个RTC的,通过这个可以方便地进行时间时间的处理。本想先整理一下这个功能,后来发现没有一个很好的显示手段,于是先做了一个基于串口的printf函数出来。 接下来看看RTC...原创 2019-09-25 21:33:40 · 1403 阅读 · 0 评论 -
141_STM32F407_prntf与hello world
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 嵌入式里面的printf函数很多时候是通过串口来实现的,我串口功能接触的少,但是这个功能应该说是早点开发出来有好处,毕竟也是一个很好的调试手段。 查了一下资料,实现printf函数需要自己实现一个putc的功能。我参考...原创 2019-09-24 22:08:36 · 429 阅读 · 0 评论 -
140_STM32F407_周期性定时器中断实现
整个STMF407系列的学习汇总链接如下:https://github.com/GreyZhang/g_stmf407 我选择的IDE对于基础功能来说,基本上是一个开箱即用的环境。不过,我没有找到文档性的说明,好在代码本身的注释就是一个很好的文档说明。 开始之前,我想实现的是一个1ms的周期性中断。看了一下这个芯片的设计,似乎设计之初就...原创 2019-09-22 21:27:39 · 2459 阅读 · 0 评论 -
串口给STM32阿波罗开发板下载程序
串口驱动安装好的状态下,把开发板通过USB线连到电脑上就会出现一个模拟串口。从截图看,我的电脑上出现的是COM4。 大致的硬件连接注意点如下: 一是画出来的跳线帽都要按照图中的进行连接,还有一个重要的一点就是按下右上角那边画出来的电源按钮。按下按钮之后,右下角的灯会亮。此时,板子通过串口进行供电,也可以进行程序的下载。原创 2017-09-04 00:21:42 · 2297 阅读 · 0 评论