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

.NET Micro Framework V4.2
QFE2最新版本其实际8月14就算已经披露了,不过最近是因为相对比忙,所以现在才抽时间研究一下初本子,和V4.2
QFE1从代码角度来拘禁,新本子有如下改变(http://netmf.codeplex.com/SourceControl/changeset/23973)。

*Micro Booter 代码优化调整

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

*CLR_RT_HeapXXXX等连锁函数,增加了 CLR_UINT32 blockSize  这个参数

*64位长整转字符串的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

追加了一个 TouchScreen.cs 文件

*TestMFProfiler(上一个本子也起)

发生一个较中的测试工具\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,不太清楚,因为添加了后来,意味着串口必须同次于读够要赢得之数了。

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

 

相关文章