32f(32f算大嘛)

口口导航网 文章阅读 248 0

32f(32f算大嘛)

自"ICspec"

一、STM32常识


1、ARM平台汇编与MS百思特网C51平台汇编差异


指令集:C51所用的指令集应用于所有X86架构的系统,被称为CISC(复杂指令集),对应的ARM系列指列集为RSIC(精简指令集),一个指令集复杂,另一个简单。


系统资源:系统资源不一样。ARM的通用寄存器都是32位的,总共有31个,地址寄存器32位的,这样可以实现访问4GB的存储空间包括内部存储器及I/O端口。


操作运行环境:寄存器数量多,大部分操作都在寄存器中完成,从而提高处理速度。(而CISC有相当一部分在存储器中完成的:寄存器间接寻址,基址加变址寻址,相对寄存器寻址,相对基址加变址寻址等这些寻址方式都是对存储器进行操作的)。


异常处理模式:新增几种异常处理模式,即发生异常时,会自动跳入到相应的异常中断中去。


2、ARM讲一下其内部资源


中断:对一个中断资源的优先级进行设置时,需设置一个四位的优先级寄存器,来决定这两个优先级各自的大小,而优先级组号,定义了抢占优先级的位数,如当使用优先级组1时,表示四位寄存器仅最低位1位来决定抢占优先级的大小,当此位为0时,表示,抢占优先级大小为0,为1时亦然。其余的三位用于表示子优先级的大小,可表示从0~7任何优先级数。


时钟:根据速度及片内片外情况,分为HSE高速外部时钟;HSI调整内部时钟,LSE低速外部时钟,LSI低速内部时钟;共四个时钟源。


其中

HSE:一般通过外接一个3~25MHZ晶振产生,可作为系统时钟。

HSI:内部自带时钟,系统的默认时钟源,大小为8MHZ.

LSE:通过外接一个32.768KHZ的晶振产生,可作为RTC的时钟源;

LSI:内部自带时钟,大小为40Khz的晶振,一般将其32分频后作为内部看门狗的时钟源;


内存:不仅ARM,所有的嵌入式设备均将系统内存根据编译情况,分为代码段(CODE),只读数据段(RO),读写数据段(RW),未初始化读写数据段(ZI),堆(HEAP),栈(STACK),


注意:

优先级数越低,优先级也低。因此可推算优先级组1可表示,两种抢占优先级,每种分别对应8种子优先级,共16个优先级别。另外,由于有些系统跑OS需要用到tick时钟,从而实现时间片轮转进行任务调试,且时间片轮转必须是抢占模式,因此,针对这百思特网种情况,不能使用优先级组0,因其0个位表示抢占优先级,即不支持抢占优先级。



二、STM32F205RET6工程应用


32f(32f算大嘛)-第1张图片


(STM32F205RET6规格书,源自ICspec官网)



中断:使用优先级组1时,表示四位寄存器仅最低位1位来决定抢占优先级的大小,当此位为0时,表示,抢占优先级大小为0,为1时亦然。其余的三位用于表示子优先级的大小,可表示从0~7任何优先级数。


时钟:

SYSCLK_FREQ_72MHz:SYSCLK = PLL_VCO / PLL_P =144M/2 =72M

72M AHB Prescaler

36M APB1 Prescaler

72M APB2 Prescaler

8M System Clock source


内存:STM32F205RET6

Flash:512Kbps 184.91KB 36.1% (RO+RW)

SRAM:128K 103.27kB 80.7% (RW+ZI)



三、ucosII与ucosIII区别与应用


1、优先级:ucosii是原来只有0~63个优先级,而且优先级不能重复,ucos iii允许几个任务使用同一个优先级,在同一个优先级里面,支持时间片调度法。


2、资源管理:ucosiii允许用户在程序运行中动态配置实时操作系统内核资源,比如,任务、任务栈、信号量、事件标志组、消息队列、消息数、互斥型信号量、存储块划分和定时器,可以在程序运行中变更。这样,用户可以避免在程序编译过程中出现资源不够分配的问题。在资源复用上,也做了一些改进。


3、百思特网任务数:C/OS-II中,最多任务数有64个,到了版本2.82以后是256个,C/OS-III中,用户可以由任意多的任务、任意多的信号量、互斥型信号量、事件标志、消息列表、定时器和任意分配的存储块容量,仅受限于用户CPU可以使用的RAM量。



四、其它嵌入式实时操作系统


1、RTX(由KEIL公司设计,现在已经被并入ARM公司旗下)这个OS设计的也非常强劲,将基于Cortex-M3/M4架构的ARM芯片性能发挥到极致——零延迟中断、在任务切换等性能测试方面完爆其它RTOS。


2、FreeRTOS有GPL(修正版)许可证限制修改版的GPL许可证有如下几个缺陷(There are several reasons why developers may find the FreeRTOS modified GPL licence restrictive.)

32f(32f算大嘛)-第2张图片


抱歉,评论功能暂时关闭!