реклама на сайте
подробности

 
 
> File I/O в CCs 3.1, чтение файла
lib
сообщение Aug 22 2006, 09:54
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Читаю файл, содержащий 16-битные числа, с помощью File I/O, соответственно SPRU328B by IT CCS User Guide. При открытии файла выбирался фильтр *.* (All files). В качечтве стартового адреса указываю глобальную переменную - массив short sample[160] . Параметр Length утанавливаю равным 160 - длина массива.
После точки чтения вывожу значения массива - везде 0, кроме последнего элемента, там 0ха0, т.е. 160.
Кроме этого, на прогресс-баре контроллера чтения/записи данных (форма с кнопками Play, Stop и др.) никаких изменений.

Подскажите, как правильно пользоваться File I/O, помогите убогому smile3046.gif

Заранее спасибо за ответы.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
Doka
сообщение Aug 22 2006, 11:57
Сообщение #2


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



а как вы получили этоn файл?
при его составлении соблюден ли формат, описанный в SPRU328 ?
вообще можно попробовать сначала что-то записать в dat-файл (с настройками, которые вам нужны на чтение) и посмотреть какой реально заголовок там прописан - его и использовать для создания файла


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
lib
сообщение Aug 22 2006, 16:45
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Ок, попробовал, создал из тестовых значений файл с заголовком COFF. Но мне нужно читать данные из обычного бинарника без заголовка. Нет ли возможности, не добавляя заголовок, это делать?
Или обязательно следует к своему бинарнику пришить заголовок?
И ещё - после введения в текст программы указателя и пересборки проекта почему при утаноске адреса в File I/O этот указатель сразу не определяется как правильный, выдаётся сообщение - "идентификатор не найден" ? При этом файл создаётся правильно.

Главный вопрос - обязательно ли добавлять заголовок к бинарнику?
Go to the top of the page
 
+Quote Post
Doka
сообщение Aug 23 2006, 09:38
Сообщение #4


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(lib @ Aug 22 2006, 20:45) *
Главный вопрос - обязательно ли добавлять заголовок к бинарнику?
да. у COFF заголовок д.б. обязательно
http://en.wikipedia.org/wiki/COFF
http://osr5doc.ca.caldera.com:457/topics/COFF.html


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
lib
сообщение Aug 23 2006, 16:08
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Сформировал я файл с COFF. Что-то не нашёл полного сходства с описанным в инете форматом.
Как сформировать заголовок для чтения бинарного файла? Нужно знать куда в память будут данные считаны?
Попробую добавить заголовок из сформированного в ходе записи файла. Результат опишу.
Go to the top of the page
 
+Quote Post
lib
сообщение Aug 23 2006, 16:50
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



И вот ещё - с записью файла всё нормально - объявил указатель, выделил память под него, записал туда данные. В точке записи по этому адресу читается всё нормально.
При чтении файла делаю то же самое - объявил ,выделил. Но при попытке указать в строке Адрес имя указателя выдаётся сообщение - "Please enter valid Start adres for file..."
Што ж не так?
Помогите тупичке...
Go to the top of the page
 
+Quote Post
PriBoris
сообщение Aug 23 2006, 21:03
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 7-10-05
Из: Санкт-Петербург
Пользователь №: 9 352



Извините, но встряну в дискуссию.
Уже давно для записи/чтения между файлами и памятью использую GEL_MemorySave() и GEL_MemoryLoad() и бед не знаю.
Go to the top of the page
 
+Quote Post
lib
сообщение Aug 23 2006, 21:55
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Посоветуйте почитать что-нибудь о GEL, для наиболее быстрого освоения подхода.
Go to the top of the page
 
+Quote Post
lib
сообщение Aug 29 2006, 08:51
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Вот кусок кода, где хочу читать из файла:

Код
    short cp[0];
    cp[0] = 0;
    printf("%x   \n",cp[0]);    //Software probe point #1    
    for (i = 0; i <= 10; ) {
        i++;
        printf("%x   \n",cp[0]);   //Software probe point #2    
    }


В Software probe point #1 и Software probe point #2 должно происходить чтение файла. Файл имеет заголовок .dat файла CCS.

В окне FILE I/O (File input) следуещее:

Probe point: Connected Page: DATA
Address: cp
Length: 2


При нажатии ОК выдаётся сообщение

identifier not found cp



В окне Break/Probe Points (Probe points):

test.c line 125 (0x80096A) --> FILE IN E:\1.dat
test.c line 129 (0x800990) --> FILE IN E:\1.dat


wacko.gif


Люди добрые!!
Помогите освоить этот FILE I/O !!! Надеюсь на вас и уповаю! help.gif
Заранее спасибо.
Go to the top of the page
 
+Quote Post
Shamil.Ru
сообщение Aug 29 2006, 13:16
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 28-08-06
Из: msk.ru.earth
Пользователь №: 19 894



Цитата(lib @ Aug 29 2006, 12:51) *
Люди добрые!!
Помогите освоить этот FILE I/O !!! Надеюсь на вас и уповаю! help.gif
Заранее спасибо.

А если сделать cp глобальным? И еще попробовать в настройках пробпойнта _cp вместо cp (хотя в этом контексте должно быть без подчеркивания, но все же).
Go to the top of the page
 
+Quote Post
lib
сообщение Aug 29 2006, 14:37
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Адрес глобального массива пропускает, но читать ничего не хочет - изменений данных в пробпоинте чтения нету.
При этом запись файла работает на УРА (кстати, что с подчёркиванием, что без него).
Ахтунг.
Go to the top of the page
 
+Quote Post
Shamil.Ru
сообщение Aug 29 2006, 16:56
Сообщение #12


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 28-08-06
Из: msk.ru.earth
Пользователь №: 19 894



Цитата(lib @ Aug 29 2006, 18:37) *
Адрес глобального массива пропускает, но читать ничего не хочет - изменений данных в пробпоинте чтения нету.
При этом запись файла работает на УРА (кстати, что с подчёркиванием, что без него).
Ахтунг.

Возможно область памяти защищена от записи. Конкретизируйте -- это в симуляторе или на железке? И в том и другом случае посмотрите на Memory Map (в первом случае в настройках композера, во втором -- в даташите на камень).

Сообщение отредактировал Shamil.Ru - Aug 29 2006, 17:01
Go to the top of the page
 
+Quote Post
lib
сообщение Aug 30 2006, 07:18
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Работа в симмуляторе. Насчёт доступа к памяти - посмотрю cmd-шник. Впрочем, пока вопрос отложу, буду использовать fread,fwrite.
Go to the top of the page
 
+Quote Post
Shamil.Ru
сообщение Aug 30 2006, 07:44
Сообщение #14


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 28-08-06
Из: msk.ru.earth
Пользователь №: 19 894



Цитата(lib @ Aug 30 2006, 11:18) *
Работа в симмуляторе. Насчёт доступа к памяти - посмотрю cmd-шник. Впрочем, пока вопрос отложу, буду использовать fread,fwrite.

Для симулятора надо смотреть меню Option -> Memory Map... и файл <CCS>\drivers\<sim>.cfg, который соответствует выбранному симулятору (в CCS Setup можно посмотреть название этого файла).
По идее если память Read-Only, то fread тоже не поможет. А если поможет, то причина не в этом.
Go to the top of the page
 
+Quote Post
lib
сообщение Aug 30 2006, 10:10
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 22-06-06
Пользователь №: 18 270



Можно использовать файл ***.cmd для определения областей памяти и доступа к ним.
Чтение сейчас выполняется fread-ом. Запись fwrite-ом упорно отказывается работать smile.gif)
Использую для записи в файл пробпоинт и out-файл. smile.gif
Потом буду анализировать.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 11:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01481 секунд с 7
ELECTRONIX ©2004-2016