.NET Micro Framework STM32的移植的问题

来源:互联网 发布:软件注册码破解 编辑:程序博客网 时间:2024/05/21 06:19

由于有客户要求使用.NET Micro Framework的方案,最近尝试了STM32的移植。

可用的资料非常少

有个 叶帆的系列做的比较多 博客有不少内容可以参考

移植的步骤我不想再详述,可以参考的资料比较多,这里主要说一下clone项目时出现的error

我用的PK4.2   KEIL4.54

setenv_mdk.bat  4.54 c:\keil\arm   是设置编译器版本的指令

msbuild dotnetmf.proj /t:build /p:flavor=release;memory=flash

编译的是我克隆的STM32Stamp

出错了

E:\MicroFrameworkPK\DeviceCode\PAL\Double\native_double_pal_fastcompile.cpp 
  "c:\Keil\ARM\RV31\INC\math.h", line 147: Error:  #1307: floating point argument not permitted with --fpu=none
        unsigned __f = __ARM_fcmp4(__x, __y) >> 28;
                                   ^
  "c:\Keil\ARM\RV31\INC\math.h", line 147: Error:  #1307: floating point argument not permitted with --fpu=none
        unsigned __f = __ARM_fcmp4(__x, __y) >> 28;
                                        ^
                                                       ^
  E:\MicroFrameworkPK\DeviceCode\PAL\Double\native_double_pal_fastcompile.cpp: 0 warnings, 30 errors


相信很多人都遇到了。

原因很简单 stm32Stamp 并不是官方开发的  SolutionWizard对它的支持有些问题

解决方案:


1.删除意外添加的库

 打开 \TinyCLR\TinyCLR.proj 文件

  删除 以下内容

<ItemGroup>

    <RequiredProjects Include="$(SPOCLIENT)\DeviceCode\PAL\Double\dotNetMF.proj" />

    <DriverLibs Include="native_double_pal.$(LIB_EXT)" />

  </ItemGroup> 


2 更改添加错误的库

   将:

  <ItemGroup>

    <DriverLibs Include="TinyHal.$(LIB_EXT)" />

    <RequiredProjects Include="$(SPOCLIENT)\DeviceCode\cores\arm\dotNetMF.proj" />

  </ItemGroup>

替换为:

  <ItemGroup>

    <RequiredProjects Include="$(SPOCLIENT)\DeviceCode\Targets\Native\STM32\DeviceCode\CortexM3\TinyHal\dotNetMF.proj" />

    <DriverLibs Include="TinyHal_Cortex.$(LIB_EXT)" />

  </ItemGroup>


3.添加需要的库(如果文件中有GlobalLock_hal相关的库,用以下内容替换掉)

  <ItemGroup>

    <RequiredProjects Include="$(SPOCLIENT)\DeviceCode\Targets\Native\STM32\DeviceCode\CortexM3\GlobalLock\dotNetMF.proj" />

    <DriverLibs Include="GlobalLock_hal_Cortex.$(LIB_EXT)" />

  </ItemGroup>



然后我就编译通过了~


0 0