Нравится? Делимся информацией!

четверг, 29 ноября 2012 г.

Code Composer Studio - Единственно правильная загрузка *.dat файла в TMS320F28335

<< предыдущий пост “Костыльное” решение для Code Composer Studio по конвертации float из десятичной системы счисления в hex




По “костыльному” решению (предыдущий пост) , есть одна неувязочка:


С чем это связано? Не долго думая, отправляемся смотреть дамп памяти ( View → Memory, в пустую строку  вставить адрес начала массива, у меня это fileWithSamples ), глобальную переменную g_sample (ПКМ на переменной g_sample → Add to Watch Window) и файл с отсчетами сигнала dspInputSamples.dat.
    При просмотре дампа памяти, изменяя поочередно параметры “Hex 16 bit - C style” ⇔  “Hex 32 bit - C style” вспомнил memory map процессора TMS320F28335.



    А Memory Map процессора говорит нам, что вся его память 16-битная!!!


    Поэтому , когда мы в точке останова, в которой передаем в целевой процессор dspInputSamples.dat , указываем передать 5387 отсчетов, т.е. де-факто, 5387 строк в файле


то Code Composer, как бездумный исполнитель, из нашего файла:


передает именно 5387 строк (16 битных значений!!!), хотя в этом файле 10774 строки с сэмплами, которые CCS положил бы последовательно в память массива, а уже в программе они интерпретировались бы как float 32 битные значения !!!


И тогда бы мы получили полный период всего нашего сигнала. А так  - всего 2693


    Итак, последний штрих:
    Чтобы правильно работать Code Composer’y с *.dat файлами, мы указываем в параметре Length не длину массива, к которому подгружаем *.dat файл, а число в два раза больше! Т.к. вся память у процессора TMS320F28335 16 битная и он работает с более длинными машинными словами путем объединения соседних /смежных 16 битных слов в слова нужной разрядности.






Внимание!!! реальный размер массива, занимающий память процессора TMS320F28335, будет больше, если использовать типы данных по размерности больше 16 бит (float, double, например). !!! Поэтому следите за объемом памяти в процессоре!


Комментариев нет:

Отправить комментарий