1、开发环境

    1. windows 7  32位
    2. MDK 4.54
    3. .Net Micro Framework Porting Kit 4.2(RTM QFE2)
    4. .Net Micro Framework  SDK 4.2(RTM QFE2)
    5. Microsoft Visual Studio 2010
    6. 开发板 野火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移植的更多相关文章

  1. 浅谈.NET Micro Framework性能优化 转自 软件中国

    .NET Micro Framework的可剪裁性,高定执行,和天生对硬件高集成度都让它的前途一片光明.当然,它现在还很年轻,就发布的SDK v3.0来看,它还有很长的路要走. 废话不说,就这几个月我 ...

  2. 【物联网智能网关-17】.NET Micro Framework之MDK C++二次开发

    .NET Micro Framework虽然好学易用,但是在一些需要实时,需要高性能的应用领域,却有些勉为其难.毕竟.NET Micro Framework上层应用程序由底层CLR(TinyCLR)解 ...

  3. .NET Micro Framework 4.2 beta 源码探析

    .NET Micro Framework 4.2 beta发布已经有一段时间了,一直没有腾出时间研究,昨天因为LWIP协议栈的原因(感觉上一个版本有点问题)刚 下了代码,所以抽空研究了一下.      ...

  4. 嵌入式的重要平台 .NET Micro Framework

    曾经辉煌的巨人PC界渐渐走向下坡路,而智能手机圈则没完没了般地争个你死我活.随着智能手机的广泛普及,不少商家为了不坐以待毙而纷纷开始涉足与穿戴式设备--智能手表(具体参见智能手表时代还有多远). 我们 ...

  5. NET Framework项目移植到NET Core上遇到的一系列坑

    原文:NET Framework项目移植到NET Core上遇到的一系列坑 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https: ...

  6. NET Framework项目移植到NET Core上踩的坑(1)

    本文章向大家介绍NET Framework项目移植到NET Core上遇到的一系列坑,主要包括NET Framework项目移植到NET Core上遇到的一系列坑使用实例.应用技巧.基本知识点总结和需 ...

  7. Linux上USB移植错误解决笔记

    在内核目录下先配置支持USB设备,无论你是什么设备,这一步都是必须的,USB驱动和其他的驱动不同,它分为USB设备驱动,另外还有USB-Host主机控制器的驱动,配置如下: Device Driver ...

  8. 2--STM32+USB移植+HID 与AUDIO类MIDI设备组成的复合设备(原创)

      前期准备: 一.硬件资源:STM32F103,USB-FS固件库. 链接: STM32 之 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序) https://blog.csdn. ...

  9. NET Framework项目移植到NET Core上遇到的一系列坑(2)

    目录 获取请求的参数 获取完整的请求路径 获取域名 编码 文件上传的保存方法 获取物理路径 返回Json属性大小写问题 webconfig的配置移植到appsettings.json 设置区域块MVC ...

随机推荐

  1. 简记某WebGIS项目的优化之路

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 该项目为研究生时的老师牵头,个人已毕业数年,应老师要求协助其 ...

  2. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  3. 记一次.NET代码重构

    好久没写代码了,终于好不容易接到了开发任务,一看时间还挺充足的,我就慢慢整吧,若是遇上赶进度,基本上直接是功能优先,完全不考虑设计.你可以认为我完全没有追求,当身后有鞭子使劲赶的时候,神马设计都是浮云 ...

  4. java常用的设计模式

    设计模式:一个程序员对设计模式的理解:"不懂"为什么要把很简单的东西搞得那么复杂.后来随着软件开发经验的增加才开始明白我所看到的"复杂"恰恰就是设计模式的精髓所 ...

  5. Android listview和gridview以及view的区别

    GridView 可以指定显示的条目的列数. listview一般显示的条目的列数都是一列 如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView andr ...

  6. Atitit.如何建立研发体系

    Atitit.如何建立研发体系 组织,流程,prj..Mana  oppm 发管理是一个完整的管理体系,从结构上来讲,它主要由四个方面的内容构架而成:组织结构与岗位设置 管理流程与工作流程..项目及管 ...

  7. python安装BeautifulSoup注意事项

    好久没有写爬虫了,最近用Python的BeautifulSoup4.Scrapy分别对以前写的spider进行优化,发现python3.5后这些库变化了很多,遇到了许多问题,在这里做一下总结. 切换环 ...

  8. 绿色版的Linux.NET——“Jws.Mono”

    Linux.NET环境的搭建,不仅是一项比较耗时的事情,同时也是一项略显复杂繁琐的事情.特别是对于近期的几个Mono版本,由于官方所提供的源码包中出现代码文件的缺失,这总让我们的付出变得徒劳.另外一方 ...

  9. ubuntu-14.04-server配置Jexus --安装步骤记录

    作者:郝喜路   个人主页:http://www.cnicode.com      博客地址:http://haoxilu.cnblogs.com 说明:我是Linux菜鸟,自己尝试配置Jexus服务 ...

  10. .NET跨平台:在Ubuntu上用自己编译的dnx运行ASP.NET 5示例程序

    在 Linux Ubuntu 上成功编译 dnx 之后,会在 artifacts/build/ 文件夹中生成 dnx-coreclr-linux-x64/ 与 dnx-mono/ 这2个文件夹,前者是 ...