Услуги диагностики приемочных испытаний автосар

В настоящее время я создаю приемочный тест для диагностических служб.

Как я могу записать значение в память DID?

Пример шага теста:

[SWC]

Записать 0x1A1B1C1D в память DID = 0xFE88

[SWC] означает, что этот шаг должен происходить в SWC.

Спасибо!


person Wreigh    schedule 07.12.2017    source источник


Ответы (2)


Работа Dcm заключается в том, чтобы выполнять фактическую запись в DID. Dcm может получать значения из компонента прикладного программного обеспечения через соединение на основе порта, но программный компонент никогда не может напрямую записывать в DID.

Следовательно, вам необходимо определить PortPrototype на стороне приложения, которое передает значение в совместимый PortPrototype, предоставляемый сервисным компонентом Dcm, и последний должен быть настроен для помещения полученного значения в правильный DID.

person Uwe Honekamp    schedule 07.12.2017
comment
Привет, спасибо за ответ. К сожалению, я не эксперт по автосарке или что-то в этом роде, моя работа - просто провести приемочные испытания, и я просто полагаюсь на SWS. Могу ли я использовать выноску Dcm_WriteMemory для этого шага теста? - person Wreigh; 08.12.2017

Как получить доступ к тестовой цели? Вы можете отладить это?

  1. Первый подход приходит мне в голову - запустить отладку, найти переменную DID и напрямую изменить значение ...

  2. Если порт отладки недоступен, вы можете найти выделенный DID адрес в файле карты, и можно реализовать простую программу взлома для подготовки значения путем записи значения на этот адрес.

  3. Если это не подходит, вы можете использовать службу UDS 0x2E (запись данных по идентификатору) для изменения значения DID. Этот подход не требует никакой разработки, кроме услуги UDS.

person Tian    schedule 24.02.2018