Обновление
This commit is contained in:
parent
5d3da3d028
commit
3f3b2eab06
|
|
@ -232,6 +232,7 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
uint8_t ODT_ENTRIES_COUNT;
|
||||
uint8_t IS_STIM_RECEIVED;
|
||||
tXCP_DATA_STIM DATA_STM[MAX_ODT_ENTRIES_SIZE];
|
||||
uint8_t BIT_OFFSET[MAX_ODT_ENTRIES_SIZE];
|
||||
uint8_t ADR_EXT[MAX_ODT_ENTRIES_SIZE];
|
||||
|
|
|
|||
|
|
@ -927,13 +927,15 @@ _Noreturn void CanXcpProcessing_ServiceTask(tCanSerialPortFrameXCP *env) {
|
|||
|
||||
for (uint8_t k = 0; k < MAX_ODT_ENTRIES_SIZE; ++k) {
|
||||
|
||||
if (env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]) {
|
||||
uint8_t ODT_ENTRIES_SIZE = env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k];
|
||||
|
||||
if (ODT_ENTRIES_SIZE) {
|
||||
|
||||
memcpy(&env->DATA[size],
|
||||
(uint8_t *) env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_ADR[k],
|
||||
env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]);
|
||||
ODT_ENTRIES_SIZE);
|
||||
|
||||
size += env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k];
|
||||
size += ODT_ENTRIES_SIZE;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -966,41 +968,48 @@ _Noreturn void CanXcpProcessing_ServiceTask(tCanSerialPortFrameXCP *env) {
|
|||
|
||||
for (uint8_t k = 0; k < MAX_ODT_ENTRIES_SIZE; ++k) {
|
||||
|
||||
if (env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]) {
|
||||
uint8_t ODT_ENTRIES_SIZE = env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k];
|
||||
|
||||
if (ODT_ENTRIES_SIZE) {
|
||||
|
||||
memcpy(&env->DATA[size],
|
||||
env->DAQ[i].ODT_NUMBER[j].DATA_STM[k].DATA,
|
||||
env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]);
|
||||
ODT_ENTRIES_SIZE);
|
||||
|
||||
size += env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k];
|
||||
size += ODT_ENTRIES_SIZE;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
uint8_t size_stim = size;
|
||||
uint8_t size_stim = 0;
|
||||
|
||||
for (uint8_t k = 0; k < MAX_ODT_ENTRIES_SIZE; ++k) {
|
||||
|
||||
if (env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]) {
|
||||
if (env->DAQ[i].ODT_NUMBER[j].IS_STIM_RECEIVED) {
|
||||
|
||||
if (size_stim <= size) {
|
||||
memcpy((uint8_t *) env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_ADR[k],
|
||||
&env->DAQ[i].ODT_NUMBER[j].DATA_STM[k].DATA[size_stim],
|
||||
env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k]);
|
||||
uint8_t ODT_ENTRIES_SIZE = env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k];
|
||||
|
||||
if (ODT_ENTRIES_SIZE) {
|
||||
|
||||
if ((size_stim + ODT_ENTRIES_SIZE) <= size) {
|
||||
memcpy((uint8_t *) env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_ADR[k],
|
||||
&env->DAQ[i].ODT_NUMBER[j].DATA_STM[k].DATA[size_stim],
|
||||
ODT_ENTRIES_SIZE);
|
||||
|
||||
size_stim += ODT_ENTRIES_SIZE;
|
||||
} else {
|
||||
asm("nop");
|
||||
}
|
||||
|
||||
size_stim += env->DAQ[i].ODT_NUMBER[j].ODT_ENTRIES_SIZE[k];
|
||||
} else {
|
||||
asm("nop");
|
||||
}
|
||||
|
||||
env->DAQ[i].ODT_NUMBER[j].IS_STIM_RECEIVED = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue