各位:
在PSM说明文档中有这样一段:
/* PhysicalReadStartAddress */ (VOID_PTR)0x08000000,
/* PhysicalWriteStartAddress */ (VOID_PTR)0x08000000,
/* PhysicalBurstReadStartAddress */ (VOID_PTR)0x08000000,
/* VirtualReadStartAddress */ (VOID_PTR)0xa1000000,
/* VirtualWriteStartAddress */ (VOID_PTR)0xa1000000,
/* VirtualBurstReadStartAddress */ (VOID_PTR)0xa1000000,
/* MaximumArrayLength */ 0x01F00000,
/* MaximumRegistrySize */ 0x00000000,
/* ManagedAreaStart */ 0x01A00000,
/* ManagedAreaLength */ 0x00500000,
/* ReadBusWidth */ 16,
/* WriteBusWidth */ 16,
/* BurstReadBusWidth */ 16
The Readstartaddress, WriteStartAddress and BurstReadStartAddress (both physical and virtual) are the start addresses of the flash array.
MaximumArrayLength is the maximum length of the flash array and MaximumRegistrySize is the size of the registry backup to be used.
ManagedAreaStart is the start of the PSM area
and ManagedAreaLength is the length of the PSM file storage and registry storage put together.
The Bus width entries are the width of the bus connected to the flash.
我的BSP中定义的/* ManagedAreaStart */ 0x01A00000,
/* ManagedAreaLength */ 0x00500000
我把ManagedAreaStart改成/* ManagedAreaStart */ 0x00000000,
编译后下到内核中,系统就起不来了,貌似把NK格式化了
但是我把/* ManagedAreaStart */ 改成0x01F00000(跟FLASH大小一样)
又把ManagedAreaLength */ 改成0x0
系统可以正常启动,但是好象并没有改到哪里,还是和以前的FLASH大小,剩余FALSH空间都一样,没什么变化
请问:这几个变量的定义到底是什么意思(反映到系统中是跟什么对应的?如修改哪个就可以改变FLASH剩余空间等)
谢谢各位!
又把ManagedAreaLength */ 改成0x0
你把长度都设成了0,PSM还会有操作吗?
你可以做个实验,先在bootloader里面把Image后面的所有空间都擦掉,然后设起始起址为0x01F00000,Length为0,看起来后能识别出FlashDisk吗?
你前面格式化后在Flash上的信息在第二次你设起始地址为0x01F00000时,不会被清掉,OS当然还是识别前面的分区信息
每次你要试这个前,先用Bootloader把Flash擦一下