zoukankan      html  css  js  c++  java
  • 【.NET MF】.NET Micro Framework USB移植

        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:PKSolutionsSTM32StampDebug_Flash.bat将MF编译成DEBUG模式,由于DEBUG模式下编译的文件包含了调试信息所以文件超出了CODE的区域修改散列文件,详参见:【.NET MF】STM32Stamp项目DEBUG后代码区域超界。在C:MFBinTHUMB2MDK4.54leFLASHdebugSTM32Stampin目录下会得到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:PKSolutionsSTM32Stampplatform_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:PKSolutionsSTM32StampDeviceCodeInitIO_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晚上聊天记录(有密码慎重下载)

  • 相关阅读:
    倍数求和
    最大(小)值
    数组扁平化:(多维数组 -> 一维数组)
    任意数求和
    找到重复最多项
    Linux 标准 I/O 库
    Linux文件操作函数
    Linux文件的IO操作 一
    Linux文件系统概述二
    Linux文件系统概述
  • 原文地址:https://www.cnblogs.com/aipeli/p/4105816.html
Copyright © 2011-2022 走看看