Как «Cat» файл в конкретном бод?
-
16-09-2020 - |
Вопрос
Я использую UCSIM, чтобы сделать модульный тест на проекты SDCC.
в UCSIM / S51, вы можете моделировать трафик последовательной линии через
s51 -s /dev/tty PROGRAM.ihx
.
или
s51 -S in=testdata.in,out=testdata.out PROGRAM.ihx
.
В последней форме данные немедленно отправляются на симулятор, который вызывает множество кадров, потерянных.Таким образом, вместо того, чтобы дать тестовые данные в простой файле, вместо этого используя трубу:
s51 -S in=<(cat testdata.in),out=testdata.out PROGRAM.ihx
.
Теперь, как я могу контролировать выходные данные из утилиты `CAT?Или есть другая утилита, которую я могу использовать для вывода битов в определенной скорости?
Решение
Ответ 1 неверно.Никто не «кормит» содержимое файла в последовательную линию.UCSIM читает из файла при необходимости.Скорость бода контролируется SFR Taimer и UART.При необходимости моделируется количество клещей, один байт будет прочитан из файла.
Другие советы
Скорость, которую вы подаете файл In= не так, как скорость установлена.Симулятор не имеет способа узнать, когда ваше приложение инициализировало последовательный порт и готов к чтению.Вы, вероятно, отсутствуют данные, потому что симулятор подает симуляционный последовательный порт до того, как выполнен код последовательного инициализации.
Что нужно сделать, это настроить файл FIFO с mkfifo
(см. Страницу MAN), а затем используйте это в качестве вашего параметра In=.Затем кормите, что файл FIFO с данными после того, как ваше моделируемое приложение работает и работает.