没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2010-01-04 10:07:05.000|阅读 583 次
概述:在上一篇《移植初步:环境搭建》文章中,我们介绍了环境搭建的相关工作,下一步我们将要为STM3210E开发板构建平台代码。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
在上一篇《移植初步:环境搭建》文章中,我们介绍了环境搭建的相关工作,下一步我们将要为STM3210E开发板构建平台代码。
打开.\tools\bin\SolutionWizard\SolutionWizard.exe,我们用平台向导来搭建我们的项目(具体的图文步骤请参见:.Net Micro Framework平台移植初步),详细的步骤如下:
1、 选择任务(Choose a Task)
由于在.Net Micro Framework源码中已经存在CortexM3_sample平台,所以我们选择克隆一个已存在的平台(Clone an Existing Solution)。
2、 选择存在的平台(Clone an Existing Solution)
我们选择:CORTEXM3_SAMPLE
3、 平台属性设置(Solution Properties)
名字(name):STM3210E 注:这个名称很重要,所以一定要慎重填写。
开发者(Author):你的名字。
描述(Description):平台说明。
4、 开发平台基本参数设置(Processor Properties)
内存模式我们选择:Small
其它相关参数,我们从EM-STM3210E开发板的用户手册中就可以查得到。
5、 项目选择(Project Selection)
我们选择如下三个项目:
(1)、tinyclr
(2)、NativeSample
(3)、Tinybooter
6、 功能选择(Feature Selection)
由于STM3210E开发板内存较小,所以我们选择几个比较基本的核心功能,我们选择暂且如下(以后可以根据需要酌情添加即可):
(1)、BlockStorage
(2)、DataStorage
(3)、Debugger
(4)、Diagnostics
(5)、I2C
(6)、InterruptHandler
(7)、Serialization
(8)、SerialPort
(9)、SPI
(10)、Stream
(11)、TinyCore
7、 支持库选择(Unresolved Library Selection)
该部分的选择和上一步骤的选择紧密相关,如果选择不当,则在编译时,会出现很多错误,所以一定要深入了解后再进行选择,我们目前的选择如下:
(1)、asyncproccanll_pal
(2)、backlight_hal_stubs
(3)、batterycharger_hal_stubs
(4)、batterymeasurement_hal_stubs
(5)、BlockStorageDriver_stubs
(6)、blockstorage_pal
(7)、blockstorage_pal
(8)、cpu_bootstrap_stubs
(9)、Buttons_pal
(10)、cpu_cache_stubs
(11)、COM_pal
(12)、config_pal_Stubs
(13)、CRC
(14)、Crypto_stub
(15)、Debugger
(16)、Debugger_full
(17)、Diagnostics
(18)、diagnostics_pal
(19)、cpu_ebiu_stubs
(20)、events_pal
(21)、FS_Config_stubs
(22)、Gesture_pal_stubs
(23)、GlobalLock_hal
(24)、cpu_gpio_stubs
(25)、Graphics_stub
(26)、Hardware
(27)、heap_pal
(28)、HeapPersistence
(29)、I2C
(30)、cpu_i2c_stubs
(31)、i2c_pal
(32)、system_initialization_hal
(33)、Ink_pal_stubs
(34)、cpu_intc_stubs
(35)、InterruptHandler_stub
(36)、LargeBuffer_hal_stubs
(37)、lcd_hal_stubs
(38)、cpu_LCD_stubs
(39)、Messaging
(40)、cpu_mmu_stubs
(41)、IOPort
(42)、palevent_pal
(43)、cpu_performancecounter_stubs
(44)、piezo_pal_stubs
(45)、cpu_prestackinit_stubs
(46)、RPC_stub
(47)、Serialization
(48)、SimpleHeap_config
(49)、SimpleHeap
(50)、sockets_pal_stubs
(51)、cpu_spi_stubs
(52)、SPOT_Crypto_stub
(53)、SPOT_Graphics_stub
(54)、SPOT_Hardware
(55)、SPOT_Hardware_SerialPort
(56)、SPOT_IO
(57)、SPOT_Messaging_stub
(58)、SPOT_Serialization
(59)、Stream
(60)、cpu_time_stubs
(61)、Time_pal
(62)、TimeService_pal_stubs
(63)、tinycrt_pal_stubs
(64)、TinyHal
(65)、usart_pal
(66)、cpu_usb_stubs
(67)、usb_pal_stubs
(68)、virtualkey_hal_stubs
(69)、cpu_watchdog_stubs
(70)、Watchdog_pal_stubs
(71)、WireProtocol
做完以上几步,我们便完成了最基本的平台代码构建工作,这时我们可以查看.\MicroFramework_3_0\Solutions目录,就会发现已经存在一个STM3210E的目录了。
移植.Net Micro Framework一般先调试NativeSample项目,等NativeSample调试成功后,才进行tinyclr的调试工作。一般来说如果NativeSample调试成功,那么.Net Micro Framework的移植工作也就完成了一大半。
下面我们对NativeSample项目进行scatterfile的配置,由于我们采用MDK工具进行编译,所以我们打开.\Solutions\STM3210E\NativeSample\scatterfile_tools_mdk.xml文件(当然,如果你选用的工具是RVDS,那么你得打开scatterfile_tools_rvds.xml文件),
为了便于调试,我们把程序放到RAM中运行(主要是因为NativeSample项目比较小,如果我们是在调试TinyClr,那么代码就得放到Nor Flash中去了)。
查看EM-STM3210E开发板的用户手册,我们知道片内SRAM 64k,片外扩展SRAM为128K,所以我们把片外SRAM一份为二,分别分配给堆和栈。片内SRAM我们存放代码,不过不要从0x20000000开始的地址分配,我们今后还要把中断向量表放到从0x20000000开始的地址上去。
根据以上信息,我们对scatterfile_tools_mdk.xml文件作如下修改:
<Set Name="Heap_Begin" Value="0x68000000"/>
<Set Name="Heap_End" Value="0x6800FFFC"/>
<Set Name="Stack_Bottom" Value="+0"/>
<Set Name="Stack_Top" Value="0x6801FFFC"/>
<If Name="TARGETLOCATION" Value="RAM">
<Set Name="Code_BaseAddress" Value="0x20001000"/>
<Set Name="Code_Size" Value="0x0000F000"/>
<Set Name="Valid" Value="true"/>
</If>
最后我们还得对.\ DeviceCode\Initialization\tinyhal.cpp文件做一些小小的改动,我们把下面的代码先做一下屏蔽,否则程序运行于此便会当机。
348 ://Buttons_Initialize();
480 ://g_Boot_RAMConstants_CRC = Checksum_RAMConstants();
好了,我们打开命令行,输入如下编译命令并运行:
Msbuild .\Solutions\ STM3210E \dotNetMF.proj /t:build /p:flavor=debug;memory=ram
如果在以上步骤中你没有出过什么差错,我想你一定会编译成功的。
OK,一切顺利,编译成功。但是我们先不要着急用MDK进行调试,因为我们的程序用到了片外SRAM(把它分配给堆和栈),而我们以上的代码中并没有写对其初始化的代码,所以要想使程序正常工作,我们必须首先要初始化片外SRAM。简单期间,我们先编写一个MDK的脚本来完成这个初始化工作。
好了,这一步的工作就暂告一个段落,下篇文章我便介绍MDK脚本的编写,及在NativeSample.cpp中编写一个控制LED灯闪烁的代码,以期来证明我们的EM-STM3210E已经可以初步工作了。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:博客园面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号