проблема была в невыровненых данных
была строчка sensor->sensROM = *(uint64_t *)(ROM); и она требует чтобы указатель ROM был выровнен по 4 байта Но он не выровнен, потому что шаг модбас структуры 2 байта и он оказывается смещен на 2 байта вместо 4 Добавил резервные 2 байта, чтобы адрес быо кратен 4 байтам
This commit is contained in:
@@ -54,6 +54,7 @@ typedef struct //MB_DataInRegsTypeDef
|
||||
{
|
||||
uint16_t SensTemperature[DS18B20_DEVICE_AMOUNT];
|
||||
MB_SensorParamsTypeDef Response;
|
||||
uint16_t reserved;
|
||||
uint16_t AllROMs[DS18B20_DEVICE_AMOUNT][4];
|
||||
}MB_DataInRegsTypeDef;
|
||||
|
||||
|
||||
@@ -153,7 +153,24 @@
|
||||
<Name>(105=-1,-1,-1,-1,0)</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint/>
|
||||
<Breakpoint>
|
||||
<Bp>
|
||||
<Number>0</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>252</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134221158</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>1</BreakIfRCount>
|
||||
<Filename>..\Core\Dallas\dallas_tools.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression>\\Project\../Core/Dallas/dallas_tools.c\252</Expression>
|
||||
</Bp>
|
||||
</Breakpoint>
|
||||
<WatchWindow1>
|
||||
<Ww>
|
||||
<count>0</count>
|
||||
@@ -168,92 +185,52 @@
|
||||
<Ww>
|
||||
<count>2</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>module2</ItemText>
|
||||
<ItemText>ROM</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>3</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>*(volatile uint32_t *)0xE0001000</ItemText>
|
||||
<ItemText>hmodbus1,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>4</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>scratchpad</ItemText>
|
||||
<ItemText>RS_Buffer,0x10</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>5</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>ROM</ItemText>
|
||||
<ItemText>mb_location</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>6</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>start,0x0A</ItemText>
|
||||
<ItemText>*(uint64_t *)(ROM)</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>7</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>end,0x0A</ItemText>
|
||||
<ItemText>*ROM</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>8</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>(uint16_t)htim1.Instance->CNT-start,0x0A</ItemText>
|
||||
<ItemText>sensor->sensROM</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>9</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>end-start,0x0A</ItemText>
|
||||
<ItemText>sensor</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>10</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>((uint16_t)htim1.Instance->CNT-start <(end-start)),0x0A</ItemText>
|
||||
<ItemText>(uint64_t *)(ROM)</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>11</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>((uint16_t)htim1.Instance->CNT-start < us*tim_1us_period),0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>12</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>(uint16_t)htim1.Instance->CNT-start,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>13</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>hmodbus1,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>14</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>RS_Buffer,0x10</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>15</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>mb_location</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>16</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>DS</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>17</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>\\Project\../Core/PY32Module/PY32module_main.c\pchsens.module3</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>18</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>\\Project\../Core/PY32Module/PY32module_main.c\pchsens.module4</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>19</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>scan_cnt</ItemText>
|
||||
<ItemText>(uint32_t *)(0x20000076)</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<WatchWindow2>
|
||||
@@ -283,6 +260,14 @@
|
||||
<ItemText>hmodbus1</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow2>
|
||||
<MemoryWindow1>
|
||||
<Mm>
|
||||
<WinNumber>1</WinNumber>
|
||||
<SubType>0</SubType>
|
||||
<ItemText>0x20000058-2</ItemText>
|
||||
<AccSizeX>0</AccSizeX>
|
||||
</Mm>
|
||||
</MemoryWindow1>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
</Tracepoint>
|
||||
|
||||
Reference in New Issue
Block a user