stm32基本软件架构 stm32架构 - 电脑|办公 - 电脑办公-杀毒安全-网络-V3学习网
微商网
 
 
导航:首页 |电脑|办公|正文

stm32基本软件架构 stm32架构

时间:2021-04-27 15:07:05
stm32的arm内核和cortex架构到底是什么意思?有什么区别?求指教! ARM 处理器传统的命名是 ARM + 数字的方式:ARM7、ARM9、ARM11,在 ARM11 以后,ARM 公
作者:

stm32基本软件架构

stm32的arm内核和cortex架构到底是什么意思?有什么区别?求指教! ...

ARM 处理器传统的命名是 ARM + 数字的方式:ARM7、ARM9、ARM11,在 ARM11 以后,ARM 公司使用了新的命名方式:Cortex,对比传统的方式就应该是 ARM12。

Cortex 架构目前分为 3 个系列,性能及复杂度由低到高分别是:M、R、A。

Cortex-M 系列主要的目标是微控制器市场,就是传统的 MCU、单片机之类,分为 Cortex-M0、Cortex-M0+、Cortex-M1、Cortex-M3、Cortex-M4 等几个档次。

Cortex-R 系列主要目标是高端的实时系统,包括基带、汽车、大容量存储、工业和医疗市场等等,分为 Cortex-R4、Cortex-R5、Cortex-R7 几个档次。

Cortex-A 系列主要面向通用处理应用市场,可向托管丰富 OS 平台和用户应用程序的设备提供全方位的从超低成本手机、智能手机、移动计算平台、数字电视和机顶盒到企业网络、打印机和服务器解决方案,处理器有:Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A12、Cortex-A15、Cortex-A17、Cortex-53、Cortex-A57 等等。

stm32的总线架构需不需要理解?ARM cortex-M3

产品信息: STM103V100是英蓓特公司新推出的一款基于ST意法半导体STM32系列处理器(Cortex-M3内核)的全功能评估板。

该评估板采用主板与子板组合的工作方式,只需通过换插不同的CPU(现配STM32F103VBT6处理器)子板,即可实现STM32系列多款处理器的代码调试。

STM103V100评估板有USB,Motor Control ,CAN,SD卡,Smart 卡,UART,Speaker,LCD,LED,BNC,耳塞插孔等丰富的外设,有助于用户轻松开发STM32的强大功能。

STM32系列32位闪存微控制器基于突破性的ARM Cortex-M3 内核,这是一款专为嵌入式应用而开发的内核。

STM32系列产品得益于Cortex-M3在架构上进行的多项改进,包括提升性能的同时又提高了代码密度的 Thumb-2指令集,大幅度提高的中断响应,而且所有新功能都同时具有业界最优的功耗水平。

目前ST是第一个推出基于这个内核的主要微控制器厂商。

STM32F103VBT6处理器价格仅为2个美金左右,相当具有竞争力,完全可以取代传统的单片机应用;而其主频却高达70MHz,性能较一般的单片机有很大的提升。

STM103V100评估板最大特色是板上集成了英蓓特公司uLinkMe仿真调试电路,板子自动对仿真器进行识别选择,用户只须一根USB线即可进行调试,另外STM103V100评估板还支持JTAG和SWD串行调试方式,非常方便,此外用户还可通过跳线设置来充分利用板上的仿真器来调试别的板上的基于ARM和Cortex的芯片,为用户开发大大节约成本。

调试接口 . 3种类型调试接口,可选SWD或20Pin JTAG接口或USB ULink-Me接口调试. 支持USB uLinkMe仿真器(板上已配,只需两根USB线就可实现轻松开发),同时用户可通过跳线设置也可以仿真调试别的ARM和CorteX内核芯片 . 支持SWD调试接口 . 电机接口:Motor多功能电机控制接口,能够实现电机的精确控制 . 温度传感器: 1个外扩高灵敏度数字温度传感器 . 扩展接口:已经将芯片所有信号引出,方便二次开发 . 启动可选:支持启动可选(User Flash, Test Flash, SRAM) . 电源接口:支持3路可选电源,分别是外接5VDC供电,USB供电,外板供电 软件参数: . ADC模数转换例程 . LCD_SPI显示例程,可显示字符、文字、图形等信息 . LED例程,控制LED指示灯,提供跑马灯演示程序 . 串口通讯例程,可以与PC或其它外设通讯,也可以做相互通讯实验 . USBAudio/DAC转换例程,可通过USB接口将音频数据发送到板,在板上进行DAC解码输出音频,实现USB声卡例程 . USBHID例程,实现USB转串口的功能 . USBCDC例程,可通过USB接口虚拟串口设备 . 支持MMC/SD卡,提供SD/MMC卡驱动程序,可实现读卡器功能 . GPIO的控制实验,LED(发光二极管)、KEY(按键)等 . RTX_Blinky例程,在RTX内核上运行的步进电机仿真驱动程序 . CAN实验 . DMA通信实验例程 . Flash读写、存储例程 . LED控制例程,提供跑马等程序 . SPI总线通信例程 . SYSTICK五维摇杆按键例程 . DEBUG仿真模拟调试例程 . EXTI芯片中断实验调用配置例程 . RCC芯片内部时钟管理程序 . RTC实时时钟程序 . WWDG看门狗实验例程 . BKP备份寄存器例程 . 时钟波形配置实验例程TIM . 中断向量配置实验例程NVIC . irDA红外通信收发例程 . PWR电源管理程序 . LCD_1620单色显色屏控制程序 . 摇杆按键控制程序joystick . Cortex-M3利用CortexM3的位块管理功能来读写SRAM中的变量程序 . Tsensor数字温度传感器程序 . Mass_Storage利用USB通信来实现SD卡接口与USB接口的转换 . STM32F10x_Smartcard_AN提供SMARTcard调试程序 购买配置: . STM103V100开发板1块 . 单色LCD显示屏 1块 . 交叉串口线 1条 . USB线 2条 . STM103V100光盘 1张

stm32f407和tms320f28335的对比

论坛上看到的比较。

这几天刚拿到STM32F4的评估板,STM32F4这次的卖点就是FPU和DSP指令集,关注了挺长时间,这次就想测试一下STM32F4的浮点性能,如果满足就升级自己飞控的架构。

本来用STM32F103+28335双核架构,F28335当浮点处理器用,调试起来比较麻烦,所以一直想换了。

测试代码就是用的我飞控的算法,全部使用浮点运算,包含姿态和位置两个7阶和9阶的卡尔曼滤波器,包含大量的矩阵运算以及部分导航算法和PID控制器等,还有部分IF和SWITCH包含跳转的判定语句,相比纯算法算是一个比较综合的运算。

测试环境:F28335:CCS V3.3,使用TI优化的数学库,不开优化,程序在RAM里执行。

STM32F4:KEIL V4.7,使用ARM优化的数学库,不开优化。

测试方法:F28335:在飞控算法入口设置断点,清零CCS的CPU计数器(profile->clock),然后STEP OVER,记录下CPU的计数STM32F4:在飞控算法入口设置断点,记录下Register窗口内算states计数器,然后STEP OVER,记录下新的计数器数值,与之前的数值相减得到CPU计数测试结果:F28335:253359个CPU周期,除以150MHZ,大约是1.69msSTM32F4:一共285964个周期,除以168MHZ,大约是1.7ms,比F28335略慢结论就是,对于包含相对较多跳转的综合浮点算法而言,STM32F4似乎并不慢多少。

抛开架构因素,从纯浮点运算方面来看的话。

STM32F4的FPU加减乘指令VADD.F32、VSUB.F32、VMUL.F32都是单周期指令,而除法VDIV.F32耗费14个周期。

例如:a = a / b;产生的汇编为:0x08000220 ED900A00 VLDR s0,[r0,#0x00]0x08000224 4804 LDR r0,[pc,#16] ; @0x080002380x08000226 EDD00A00 VLDR s1,[r0,#0x00]0x0800022A EE801A20 VDIV.F32 s2,s0,s10x0800022E 4803 LDR r0,[pc,#12] ; @0x0800023C0x08000230 ED801A00 VSTR s2,[r0,#0x00]复制代码 F28335: F28335的FPU有加减乘法指令,都是双周期的,由于没有硬件除法指令,F28335这里是用软件模拟的浮点除法,汇编可以看到 LCR $div_f32.asm字样,需要19个时钟周期。

例如:a = a * b,产生的汇编为:0087B2 E203 MOV32 *-SP[4], R0H0087B4 E2AF MOV32 R1H, *-SP[6], UNCF0087B6 E700 MPYF32 R0H, R1H, R0H0087B8 7700 NOP //需要让流水线等待FPU运算完毕,所以需要NOP 0087B9 E203 MOV32 *-SP[4], R0H复制代码 除法:0087BD E203 MOV32 *-SP[4], R0H0087BF E2AF MOV32 R1H, *-SP[6], UNCF0087C1 7640 LCR $div_f32.asm:52:71$0087C3 E203 MOV32 *-SP[4], R0H复制代码 结论:可见单从浮点处理器来说,F28335是不如F4的FPU的。

但是由于F28335是哈佛架构,有较长的流水线,可以在一个时钟周期里完成读取,运算和存储,所以程序连续运行的话,就比ARM快上许多许多,比如执行一次a = a + b只需要5个时钟周期,但是缺点就是一旦要跳转,就必须清空流水线,如果是for(i = 0;i < 1000; i ++)a = a + b;复制代码 这样的运算,速度反而要比ARM慢(测试下来单次是17周期,ARM是14).所以说这就是ARM和DSP不同的地方了。

看看这次测试比较,感觉环境还是有一定的问题:1、F28335是在RAM中运行,并且两者都是在仿真器环境中进行运算,还是离线在Flash中跑比较靠谱。

2、两者编译平台一个是CCS,一个是KEIL,对通用语句的优化,有待商榷。

3、ARM和TI的数学库中,各自支持的运算种类不一样。

怎么有效的学习apm,需不需要从stm32基本语法结构开始

它负责的是芯片内核的架构设计,而TI,ST这样的公司,他们并不做标准,他们是芯片公司,他们是根据ARM公司提供的芯片内核标准设计自己的芯片,ARM公司主要提供IP核,就是CPU的内核结构,也就是说,本质上大家都是一样的,STM32就是意大利的意法半导体基于Cortex-M3的32位嵌入式处理器,并不是完整的处理器,这样ARM公司为了能让不同的芯片公司生产的Cortex-M3芯片能在软件上基本兼容,他们的内核结构都是一样的,不同的是他们的存储器容量; 微控制器软件接口标准”。

ARM是英国的芯片设计公司,其最成功的莫过于32位嵌入式CPU核----ARM系列,最常用的是ARM7和ARM9,许多公司,甚至Intel.ARM为了对付 8位机市场,最近推出了 Cortex-M3核。

所以,任何一个做Cortex-M3芯片,如 Pllips 三星 ,ATMEL 等等. ARM把这个核卖给各大半导体公司ARM是一个做芯片标准的公司。

既然大家都使用的是Cortex-M3核,和芯片生产商共同提出了一套标准CMSIS标准(Cortex Microcontroller Software Interface Standard) ,翻译过来是“ARM Cortex™,只包括最核心的部分,片上外设,IO 以及其他模块的区别...

STM32S属于ARM多少 ARM7 ?

STM32S有个单独的ARM体系,属Cortex-M3内核,定位它的Cortex-M3为ARM8。

STM32是基于ARM® Cortex® M 处理器内核的 32位闪存微控制器,为MCU用户开辟了一个全新的自由开发空间,并提供了各种易于上手的软硬件辅助工具。

STM32 MCU融高性能、实时性、数字信号处理、低功耗、低电压于一身,同时保持高集成度和开发简易的特点。

业内最强大的产品阵容,基于工业标准的处理器,大量的软硬件开发工具,让STM32单片机成为各类中小项目和完整平台解决方案的理想选择。

按内核架构分为不同产品系列。

...

ARM入门是学ARM7好还是学STM32好???

stm32使用的是ARM公司开发的Cortex-M3内核,就是ARM芯片的一种,使用的是最新的ARM V7内核架构,Cortex还有A、R两个系列专家的建议,初学者学三星的S3C44B0很好,虽然这块芯片被业界用烂了,不是处理器越高的就一定越好,学ARM9,要学Linux,精通Linux内核,这比精通ucosII难度大多了,专家建议先学ucosII,一个非常好的小的嵌入式实时操作系统。

相对来说STM32应用更广泛一些,既适合ARM也适合X86。

...

大家还关注
    
阅读排行
推荐阅读