Я не могу решить предупреждение о правиле 11.6 мисры в этой строке:
uint32_t * delay = (uint32_t *)0x40086D0C ;
[К сведению: typedef long unsigned int uint32_t;]
PC-Lint: Примечание 923: преобразование из int в указатель [правило MISRA 2012 11.6, обязательно]
Что я сделал:
- Явно типизировано, но это не работает
- Используйте memset(), он работает, но это не правильный способ устранения предупреждения Misra. потому что это было ненужным повышенным вызовом функций в системе и могло снизить производительность системы.
Не могли бы вы поделиться полезной мыслью по моей проблеме? Это будет действительно оценено.
delay
на заданный адрес памяти или создать указатель с этим целочисленным значением? - person   schedule 08.12.2016extern uint32_t *delay;
. Нет необходимости ломать MISRA C. - person   schedule 08.12.2016