.NET Micro Framework V4.2 QFE2新本子简介

.NET Micro Framework V4.2
QFE2最新版其实际四月14就曾经发表了,但是目前出于相对较忙,所以现在才抽时间讨论一下新本子,和V4.2
QFE1从代码角度来看,新本子有如下改变(http://netmf.codeplex.com/SourceControl/changeset/23973)。

*Micro Booter 代码优化调整

*浮点运算相关代码举行了调整

*CLR_RT_HeapXXXX等有关函数,增添了 CLTucson_UINT32 blockSize  这些参数

*6几人长整转字符串的bug已经缓解

*日增了DA接口(模拟量输出)

*引入了g_fDoNotUninitializeDebuggerPort全局变量,调试口卸载要开展判定

if(!g_fDoNotUninitializeDebuggerPort)

{

   DebuggerPort_Uninitialize( m_port );

}

*消耗平衡代码

\MicroFrameworkPK_v4_2_QFE2\DeviceCode\Drivers\BlockStorage\WearLeveling\BS_WearLeveling_Driver.cpp

开支平衡相关代码举办了大开间的改动,在此此前我测试进度中窥见,那段代码完毕的极度,希望本次革新,能一蹴即至之前的遗留难点。

*文件系统代码

\MicroFrameworkPK_v4_2_QFE2\DeviceCode\Drivers\FS\FAT\FAT_FileHandle.cpp

\MicroFrameworkPK_v4_2_QFE2\DeviceCode\Drivers\FS\FAT\FAT_SectorCache.cpp

如果不启用损耗平衡成效,文件系统在写相比较大的文件的时候,就会出现难点,看此次修改的代码,数据缓存做了必然的处理,等自身移植好不无关系代码,测试一下,看看是还是不是还存在类似难点。

其余 定义了二个 FAT_FS__DO_NOT_UPDATE_FILE_ACCESS_TIME
宏,因为文件系统中,假使文件一修改,就改成修改时间,代价照旧蛮高的,即使不是特地在意文件的改动时间,又对文件系统操作的属性有须要,应该在配置文件中,定义那几个宏。

*WinUSB

鉴于引入了WinUSB,所以在USB配置文件里,彻底去掉了Sideshow(此前vista系统控制面板中有该功能,Win7中给去掉了)的协理。

\MicroFrameworkPK_v4_2_QFE2\Framework\Debugger\WinUsb

\MicroFrameworkPK_v4_2_QFE2\tools\bin\Test\WinUsbInvoke.dll

WinUSB驱动

\MicroFrameworkPK_v4_2_QFE2\USB_Drivers\WinUSB\DriverPackage\win7

*bool HAL_CONTINUATION::IsLinked()

异步处理,扩张了这么些函数

*LWIP协议栈

\MicroFrameworkPK_v4_2_QFE2\DeviceCode\pal\COM\sockets_lwip\sockets_lwip.cpp

部分代码也进展了调整

* SSD1289呈现驱动

\MicroFrameworkPK_v4_2_QFE2\DeviceCode\Drivers\Display\SSD1289

来得扩充了一芯片SSD1289的支撑

*Touch

日增了3个 TouchScreen.cs 文件

*TestMFProfiler(上三个本子也有)

有2个相比较实惠的测试工具\MicroFrameworkPK_v4_2_QFE2\tools\bin\TestMFProfiler.exe

可以充足评测当前的运作的主次的各个参数。

 

不过这一次升级也引入了一部分题材

1\MicroFrameworkPK_v4_2_QFE2\CLR\Core\HeapPersistence\Heap_Persistence_stub.cpp

很想得到,那么些文件之中的代码应该是空的,不明白为什么全填写了具体的落到实处代码

2\MicroFrameworkPK_v4_2_QFE2\CLR\Libraries\SPOT_Hardware\SPOT_Serial\spot_hardware_serial_native_System_IO_Ports_SerialPort.cpp

该文件中 伸张了三个break,不太领悟,因为添加了后头,意味着串口必须1遍读够要收获的数量了。

while(fRes && count > 0)
 {
    int read = ::USART_Read( port, (char*)ptr, count );
    if(read == 0)
    {
            stack.m_evalStack[ 1 ].NumericByRef().s4 = totRead;
           TINYCLR_CHECK_HRESULT(g_CLR_RT_ExecutionEngine.WaitEvents( stack.m_owningThread, *timeoutTicks, CLR_RT_ExecutionEngine::c_Event_SerialPort, fRes ));
        }
        else if(read < 0)
        {
            TINYCLR_SET_AND_LEAVE(CLR_E_INVALID_PARAMETER);
        }
        else
        {

            ptr     += read;
            totRead += read;
            count   -= read;
            break;  <-- 新增加的
        }
 }

新本子下载:http://netmf.codeplex.com/releases/view/91594

官方更新表达:

The additions for this release include adding support for
the WinUSB driver in replacement of the current USB driver that had
been associated with some deployment problems. Analog Output has
also been added based on a contribution from Oberon Microsystems – part
of the Mountaineer group that makes .NET Gadgeteer mainboards. Finally,
support for installing the latest versions of GCC (4.6.1) has been
added.

There have also been a number of performance improvements and minor bug
fixes which include:

File system

  • Improved FS performance and some minor bug fixes
  • Added continuation to flush the FS cache at a configurable time

Wear Leveling

  • Reworked the Driver to fix some issues around bad block replacement
  • improved diagnostics for wear leveling

MicroBooter

  • Changes to support unaligned ZI/RW sections
  • RW/RO sections are no longer required to be contiguous
  • Fixed SREC processor to support multiple BS devices and
    non-contiguous memory streams
  • Read buffer is now only 512K instead of a block size

Touch Screen

  • Improved the Gesture Driver
  • Fixed some minor issues with the touch driver
  • moved the touch event structures, enums, and delegates assembly
    (Microsoft.SPOT.Native)

Others

  • Thumb-2 assembly code updated and global lock implemented
  • SerialPort.DiscardBuffer fixed (flushes the correct buffer)
  • SerialPort.Read no longer blocking if data is available.
  • Faster loadign of large heaps
  • Support weak references with stubbed EWR
  • Better support of emulated floating point bounds checking
  • Better hex number formatting
  • AppDomain.GetAssembly implemented
  • Fixed issues with the stream reader (no longer waits forever to
    refill the buffer)
  • Better handling of the case where RTIP is not installed as PK add-on
    but used in the solution

 

相关文章