我正在尝试写入STM32F1xxC的内部闪存(每页2KB),我可以在页面擦除后写入闪存,将该页面的每个字节转换为0xFF.
很奇怪我不能写两次相同的flash地址,只有当该地址的前一个值是" 0xFFFF " 时才有可能.
这种限制的原因是什么?而且我想知道为什么我不能写到奇数地址?(例如0x803F0A1)
我不认为我的问题是平台(或供应商)特定的,所以我不添加任何代码.
我感谢任何帮助.
我一直在寻找如何连接两个表(数据表和数据值,一对多)并填充type的字典。
数据的记录可能是数千个(例如500,000个或更多),每个数据可能具有10到20个DataValue,这使它的查询量大得多,因此性能在这里非常重要。
这是我编写的代码:
// Passed via the arguments, for example, sensorIDs would contain:
int[] sensorIDs = { 0, 1, 2, 3, 4, 5, 6, 17, 18 };
Dictionary<Data, List<DataValue>> dict = new Dictionary<Data, List<DataValue>>();
foreach (Data Data in dt.Datas)
{
var dValues = from d in dt.Datas
join dV in dt.DataValues on d.DataID equals dV.DataID
where (SensorIDs.Contains(dV.SensorID))
select dV;
dict.Add(Data, dValues.ToList<DataValue>());
}
Run Code Online (Sandbox Code Playgroud)
但是这种方法存在严重的性能问题,并且执行时间较长。不知道我是否需要使用SQL视图。有什么建议么?
sql-server ×2
c# ×1
embedded ×1
flash-memory ×1
linq ×1
linq-to-sql ×1
performance ×1
sql ×1
stm32 ×1