【.NET MF】.NET Micro Framework USB移植
1、开发环境
- windows 7 32位
- MDK 4.54
- .Net Micro Framework Porting Kit 4.2(RTM QFE2)
- .Net Micro Framework SDK 4.2(RTM QFE2)
- Microsoft Visual Studio 2010
- 开发板 野火IOS V2
2、移植前的准备
2.1、运行C:\PK\Solutions\STM32Stamp\Debug_Flash.bat将MF编译成DEBUG模式,由于DEBUG模式下编译的文件包含了调试信息所以文件超出了CODE的区域修改散列文件,详参见:【.NET MF】STM32Stamp项目DEBUG后代码区域超界。在C:\MFBin\THUMB2\MDK4.54\le\FLASH\debug\STM32Stamp\bin目录下会得到tinyclr.axf文件。
2.2、用MDK工具来调试我们生成的tinyclr.axf文件,打开MDK工具,新建一个project,输入项目名字“USB”,接下来选择芯片型号“STM32F103ZE”,提示“Copy 'startup_stm32f10x_hd.s' to Project Folder and Add File to Project?” 点“否”,不需要增加到项目里去。
2.3、打开Project菜单->Options for Target 'Tartget1'
2.4、设置Debug选项
2.5、设置Utilities选项
2.6、设置烧录设备J-LINK
2.7、点工具栏上的“Downdload”->“Start/Stop Debug Session(Ctrl+F5)”->“Run(F5)”->“Stop”,这段操作流程的意思是先将成生的AXF文件下载到设备上去,然后进行调试,当进去时会有个黙认的入口断点(PreStackInit,暂且这称呼),这时按下运行按钮,让其运行完,然后中断调试。
2.8、查看GPIOD的初始化,打开“Peripherals->General Purpose I/O->GPIOD”,发现PD3的引脚没有被初始化,如图:
2.9、为什么要查看PD3呢,查看野火IOS V2的电路图
3.0、上面调试环境及工作原理搞清楚后,哪我们如何来配置MK呢?使其能够工作起来(重点!!!!!)
3.0.1、配置DEBUGGER_PORT 为USB模式
打开C:\PK\Solutions\STM32Stamp\platform_selector.h,72行改为“USB1”
#define DEBUGGER_PORT USB1//COM1
3.0.2、设置PD3为低电平
同一个文件中,75行,去掉注释,改为:
#define STM32_USB_Attach_Pin_Low 51 // PD3
3.0.3、初始化GPIO,修改IO_Ini.cpp
打开C:\PK\Solutions\STM32Stamp\DeviceCode\Init\IO_Init.cpp,把__section函数的内容改为:
void __section(SectionForBootstrapOperations) BootstrapCode_GPIO() { /* Enable GPIOA, GPIOB, and GPIOC clocks */
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPBEN | RCC_APB2ENR_IOPCEN|RCC_APB2ENR_IOPDEN|RCC_APB2ENR_IOPEEN|RCC_APB2ENR_IOPFEN; // pins: 15------8 7------0
GPIOA->CRH = 0x44444444; GPIOA->CRL = 0x44444444;
GPIOB->CRH = 0x44444444; GPIOB->CRL = 0x44444444;
GPIOC->CRH = 0x44444444; GPIOC->CRL = 0x44444444;
GPIOD->CRH = 0x44444444; GPIOD->CRL = 0x44444444;
GPIOE->CRH = 0x44444444; GPIOE->CRL = 0x44444444;
GPIOF->CRH = 0x44444444; GPIOF->CRL = 0x44444444; }
3.0.4、打开MDK,重新Downdload,再时行调试,查看GPIOD PD3的初始化是否成功,是否为低电平
看到哪图所示,说明初始化及PD3的电平都是正确的了,到此步修改MK的工作完成了,接下来接上USB口,这时PC端会发现一个未知的USB设备
3.0.5、安装设备的驱动,具体的操作方法见:《自定义USB设备名称及驱动名称》,不需要更改设备名称直接安装USB_DRIVER就可以了,到此完成了全部的修改过程,祝好运!!
附:20141117晚上聊天记录(有密码慎重下载)
【.NET MF】.NET Micro Framework USB移植的更多相关文章
- 浅谈.NET Micro Framework性能优化 转自 软件中国
.NET Micro Framework的可剪裁性,高定执行,和天生对硬件高集成度都让它的前途一片光明.当然,它现在还很年轻,就发布的SDK v3.0来看,它还有很长的路要走. 废话不说,就这几个月我 ...
- 【物联网智能网关-17】.NET Micro Framework之MDK C++二次开发
.NET Micro Framework虽然好学易用,但是在一些需要实时,需要高性能的应用领域,却有些勉为其难.毕竟.NET Micro Framework上层应用程序由底层CLR(TinyCLR)解 ...
- .NET Micro Framework 4.2 beta 源码探析
.NET Micro Framework 4.2 beta发布已经有一段时间了,一直没有腾出时间研究,昨天因为LWIP协议栈的原因(感觉上一个版本有点问题)刚 下了代码,所以抽空研究了一下. ...
- 嵌入式的重要平台 .NET Micro Framework
曾经辉煌的巨人PC界渐渐走向下坡路,而智能手机圈则没完没了般地争个你死我活.随着智能手机的广泛普及,不少商家为了不坐以待毙而纷纷开始涉足与穿戴式设备--智能手表(具体参见智能手表时代还有多远). 我们 ...
- NET Framework项目移植到NET Core上遇到的一系列坑
原文:NET Framework项目移植到NET Core上遇到的一系列坑 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https: ...
- NET Framework项目移植到NET Core上踩的坑(1)
本文章向大家介绍NET Framework项目移植到NET Core上遇到的一系列坑,主要包括NET Framework项目移植到NET Core上遇到的一系列坑使用实例.应用技巧.基本知识点总结和需 ...
- Linux上USB移植错误解决笔记
在内核目录下先配置支持USB设备,无论你是什么设备,这一步都是必须的,USB驱动和其他的驱动不同,它分为USB设备驱动,另外还有USB-Host主机控制器的驱动,配置如下: Device Driver ...
- 2--STM32+USB移植+HID 与AUDIO类MIDI设备组成的复合设备(原创)
前期准备: 一.硬件资源:STM32F103,USB-FS固件库. 链接: STM32 之 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序) https://blog.csdn. ...
- NET Framework项目移植到NET Core上遇到的一系列坑(2)
目录 获取请求的参数 获取完整的请求路径 获取域名 编码 文件上传的保存方法 获取物理路径 返回Json属性大小写问题 webconfig的配置移植到appsettings.json 设置区域块MVC ...
随机推荐
- Golang 编写的图片压缩程序,质量、尺寸压缩,批量、单张压缩
目录: 前序 效果图 简介 全部代码 前序: 接触 golang 不久,一直是边学边做,边总结,深深感到这门语言的魅力,等下要跟大家分享是最近项目 服务端 用到的图片压缩程序,我单独分离了出来,做成了 ...
- [转]Patch文件结构详解
N久不来 于是不知道扔在哪儿于是放这里先 如果你觉得碍事的话 帮我扔到合适的版块去.. 导读这是一篇说明文 它介绍了标准冒险岛更新文件(*.patch;*.exe)的格式文章的最后附了一段C#的参考代 ...
- ubuntu 下安装scrapy
1.把Scrapy签名的GPG密钥添加到APT的钥匙环中: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 6272 ...
- trigger事件模拟
事件模拟trigger 在操作DOM元素中,大多数事件都是用户必须操作才会触发事件,但有时,需要模拟用户的操作,来达到效果. 需求:页面初始化时触发搜索事件并获取input控件值,并打印输出(效果图如 ...
- 【JS基础】对象
delete 可以删除对象属性及变量 function fun(){ this.name = 'mm'; } var obj = new fun(); console.log(obj.name);// ...
- Oracle Standard Error 列表
今天,我特意从网上找了一些,以及自己平时总结的,关于错误编号和说明,平时我们在写项目的时候,往往是可能会出现下面这些错误,例如:违反唯一约束,无效的会话ID,等等.希望对大家有点帮助!可以看看,如果有 ...
- Linux基础介绍【第六篇】
定时任务crond介绍 crond是什么? crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件.一般情况下,安装完CentOS5/6 linux操作系统之后,默认便会启动cro ...
- windows 7(32/64位)GHO安装指南(U盘制作篇)~
本篇接着上篇的介绍,为同学讲解U盘启动盘的制作.虽然本篇大白菜的官网上也有类似的教程,但是为了完整性,我将在这里为大家细细的讲解.在这里说一下,系统包和软件包的下载大家可以自行下载,很简单的,小主就不 ...
- 基于 SailingEase WinForm Framework 开发优秀的客户端应用程序(目录)
本系统文章将详细阐述客户端应用程序的设计理念,实现方法. 本系列文章以 SailingEase WinForm Framework 为基础进行设计并实现,但其中的设计理念及方法,亦适用于任何类型的客 ...
- 【Java并发编程实战】-----“J.U.C”:ReentrantReadWriteLock
ReentrantLock实现了标准的互斥操作,也就是说在某一时刻只有有一个线程持有锁.ReentrantLock采用这种独占的保守锁直接,在一定程度上减低了吞吐量.在这种情况下任何的"读/ ...