用户登录
用户注册

分享至

mcu软件移植

  • 作者: 疯狂小马一
  • 来源: 51数据库
  • 2020-04-15

如何移植RT-thread官方的系统源码到STM32F10x特定的MCU平台中

想象一下放在你的手机屏幕上,即使3到5年内技术层面解决,就可以直接移植到win Rt平台。

纯手动打字,字有多小,各种选项,降低了功耗,你可以打开一个word文档,主要是功耗和体积,成本也是很重要的因素。

英特尔刚发布了新一代22纳米技术的处理器,进一步提升了性能,手机相对于电脑还是有两点根本性的区别,屏幕的大小和键盘,望采纳。

至于和win8这种完全版的Pc系统打通融合,技术层面现在还做不到微软近期透露出的消息是surface Rt,也就是Windows Rt系统会和Wp8融合。

,你用手点的到么?所以还是有区别的,可能会采用目前Windows Rt和win8的做法,就是在win8上开发出软件,经过官方的工具,无需修改,或者少许针对 小屏幕操作的优化。

预计明年将推出14纳米的芯片。

另外

如何将CoreMark程序移植到STM32

CoreMark是一项测试处理器性能的基准测试。

代码使用C语言写成,包含:列举,数学矩阵操作和状态及CRC等运算法则。

目前CoreMark已迅速成为测量与比较处理器性能的业界标准基准测试。

CoreMark的得分越高,意味着性能更高。

在CoreMark的官网上可以大家可以看到各家处理器型号的CoreMark得分。

也可以从CoreMark的官网上下载测试代码,亲自测一下自己手中的片子的性能。

CoreMark官网的连接地址:。

本文将一步步来介绍如何将下载的CoreMark测试代码移植到STM32MCU上进行测试。

下载CoreMark测试代码通过上文给出的链接进到CoreMark官网。

点击Download,根据页面的指导,先注册再下载测试代码CoreMark的测试代码文件包括:? core_list_join.c? core_main.c? core_matrix.c? core_state.c? core_util.c? coremark.h? simple/core_portme.c? simple/core_portme.h新建CoreMark STM32工程1)打开STM32CubeMX,选择新建Project, 在接下来的窗口中选择目标MCU的型号。

可以通过MCU筛选器进行筛选,见下图。

这里我们选择STM32F746NG。

2)选择使用外部晶振3)配置时钟Step1 :PLL source选择外部高速时钟(HSE,25MHz)Step2 :系统时钟源选择PLLCLKStep3 :HCLK设置为216MHz,回车后工具会自动计算出合适的PLL配置参数。

4)配置串口根据所用测试板子具体使用的串口进行配置。

这里我们使用的USART1(PA9,PA10端口)。

Step1:使能USART1。

Step2:将USART1重映射到PA9和PA10引脚。

可以在右图直接点击对应引脚,在跳出的列表中选择USART的第二功能。

不知道引脚的位置可以在上方的Find窗口内输入引脚的名称来查找引脚的位置。

Step3 :到Configuration页面,对串口进行参数配置。

设置串口参数为:波特率:9600Bits/s数据长度:8bit(包括奇偶校验位)校验:ODD停止位:1 bit5) 生成IAR项目代码做完上面的设置后,就可以让CubeMX帮我们生成代码了。

选择Projec-->Generate Code,在跳出的Project配置窗口中指定项目名称和保存路径。

选择要使用的工具链,这里选择EWARM。

配置最小堆栈大小。

点击逗OK地后,CubeMX会自动在指定路径生成一个IAR的工程。

这个工程已经包含了所有用到的底层驱动和并已经添加了系统初始化的代码。

添加CoreMark代码现在我们已经有了一个初步的项目工程。

接下来要做的就是添加CoreMark代码。

1)将前面下载的CoreMark代码文件拷贝到新建的工程中。

2)添加文件到工程打开新建的工程Coremark_Project。

在Application/User目录下新建一个目录Coremark,将core_list_join.c /core_main.c/core_matrix.c/core_state.c/core_util.c这5个文件添加进去。

(选中左边工程中User目录->单击右键->Add->Add Group/Add Files)再将core_portme.c添加到User目录下。

因为core_main.c文件里已经包含了一个main函数,所以需要在工程中将默认创建的main.c文件删除。

完成后的工程文件结构如下:3)添加include路径在Options->C/C++ Compiler->Preprocessor下增加include路径:$PROJ_DIR$\..\Src\Coremark。

配置Coremark文件我们已经添加了所有需要的文件,但现在程序还是不能正常运行。

因为默认生成的main.c文件已经被从项目中删除了,我们需要在Core_portme.c中添加初始化的代码,并根据不同的计时方法修改Core_portme.c中计时相关函数和代码。

添加初始化代码1) portable_init函数Core_portme.c 中的portable_init函数在Core_main.c的main函数中首先被调用,平台的初始化的函数(时钟,GPIO,串口,缓存)可以放在这里。

所以我们将CubeMX生成的Main函数中的初始化代码拷贝到portable_init函数中。

修改前 : 修改后:STM32F7内核有4K Bytes的数据缓存(DCache)和指令缓存(ICache),程序在Flash中通过AXI总线运行时,为了达到最高的性能需要把数据缓存和指令缓存打开。

STM32其他的系列没有缓存也就不需要添加这部分代码。

另外,如果在linker文件里配置将代码放在了其他的位置,缓存也不一定要打开,比如程序在Flash中通过ITCM总线运行,具体看程序的配置。

2)添加下面函数将main.c中的SystemClock_Config,MX_USART1_UART_Init和MX_GPIO_Init函数拷贝过来。

并添将加printf重定向的代码。

3)在文件开头添加函数声明和变量定义:4)添加新的include文件 修改计时相关代码start_time/ stop_time/ get_time这几个函数,是coremark程序运行时计算程序运行时间所用。

这里使用system tick进行计时,system tick配置为1ms的中断间隔。

system tick中断函数中更新Tick的值,每进一次中断加1。

所以还需要修改system tick的中断处理函数。

1)在Core_portme.c中按下表找到需要修改的地方,并按表格的内容进行修改:2)在Core_portme.c文件中添加新定义的变量和函数system tick的中断处理函数在stm32f7xx_it.c中。

stm32f7xx_it.c文件包含所有中断处理入口函数。

根据不同的平台,这个文件的名字稍有不同。

找到SysTick_Handler函数进行修改。

修改前:修改后: CoreMark运行配置1)设置迭代次数CoreMark要求程序运行的最短时间...

如何手机制作软件

想要开发手机软件,需要学习编程语言,一般效率最高的编程语言是汇编语言,当然,也是比较难学的语言,而且可移植性很差,只能针对特定的CPU或MCU来编程;高级语言中,效率最高的语言是C语言,可移植性很高,适合大多数编程人员或爱好者。

然后就可以在电脑PC版来制作了。

TI的DSP的IQMath库的优点有哪些?我比较关心移植性的问题

其实ST是把中断处理的细节给封装了起来,回掉函数是暴露给开发者的接口函数,开发者只需要在回调函数中实现特定的功能即可。

这样的好处是简化了开发过程(理论上是这样的,但是对于用惯了标准库的我来说,还是有些不适应,感觉都被束缚了,还是习惯自己动手实现中断过程)。

同时也便于不同型号的MCU软件之间的移植。

...

avr的开发工具

AVR StudioATMEL的AVR单片机的集成环境汇编级开发调试软件,完全免费。

ATMEL AVR Studio集成开发环境(IDE),包括了AVR Assembler编译器、AVR Studio调试功能、AVR Prog串行、并行下载功能和JTAG ICE仿真等功能。

SL ISP 双龙公司开发的ISP下载软件。

之前的版本都比较普通,最新版本1.423引入了STK500的熔丝位界面,让操作比较简易,并且不容易出错。

是国产的老牌下载器。

PnoyProg 经典的ISP下载软件。

但这个版本有一个缺陷:该软件读出的时钟校正值只有1MHZ的校正,其他频率的校正值无法读出。

这是一个很好用的免费软件。

一年多没有更新了,2005.05更新了一个新版本,支持了 tiny2313,mega8515,mega8535,但奇怪的是,仍不支持 M48/88/168.VMLAB Vmlab是AVR系列单片机的一个纯软件模拟仿真工具。

从V3.12开始,它变成了免费的版本。

Vmlab还能仿真ST62系列的单片机GCCAVR(WinAVR) GCC是Linux的唯一开发语言。

就嵌入系统应用来说,几乎所有市面上有一定市场份额的8bit以上MCU都有爱好者移植GCC在其上。

GCC的编译器优化程度可以说是目前世界上民用软件中做的最好的,完全用ANSI?C规范写出的超过一万行代码的程序,还没有任何一种编译器产生的目标代码能比GCC产生的代码速度更快,同时它的bug数量却也可以算作所有民用C编译器中最少的就8bit开发而言,GCC还有一个很严重的缺陷就是,不支持float数据类型,实际上GCC在所有环境中都把float直接定义为double,这样,对8bit环境来说,就显得负担过重了。

被移植到WINDOWS平台上,整合了各个组件后的Windows版GCCAVR就是WinAVR。

不是IDE,自己定制IDE的时候就要用到makefile,makefile重要作用就是:指定所用的单片机类型,指定编译的文件,设定编译优化条件等。

ICC ICC是用来给AVR单片机编写C语言程序的,比较专业,但需要付费。

IARAVR IAR是公认全世界最好的嵌入式开发软件,IARAVR集成了高效的C编译器,是目前开发代码效率最高的开发工具,也是AVR开发工具当中唯一支持64bit数据的的开发工具,其代码优化效率也是最高的,软件售价比较昂贵,国内使用的人较少。

ZLG致远电子P800isp软件有哪些特点?

搭载嵌入式操作系统,在 windows 平台下,编程软件、芯片编程时序具备高度可移植性,时序算法添加更快更稳定;支持 NXP 、Infineon、Cypress、TI、ST、MAXIM、Atmel、Nordic、Nuvoton、Freescale等众多国际主流半导体厂家,及新唐、兆易、中颖、复旦微等多家本土半导体厂家的芯片; 支持 Cortex-Mx 系列、8051 系列、AVR 等主流内核 MCU,及 EEPROM、NOR Flash 等多种存储芯片。

转载请注明出处51数据库 » mcu软件移植

软件
前端设计
程序设计
Java相关