Если кто еще не в курсе. В версии 2.05 компилятора C30 для PIC24/dsPIC появилась очень полезная фича - работа с любыми внешними файлами (в папке проекта, например) в симуляторе.
Что это дает:
- можно открыть файл на чтение/запись, получать оттуда данные и соответственно их туда писать.
- гораздо удобнее чем все симуляции UART-ов (потому как UART SIM I/O открывает файл как текстовый).
Как это сделать:
- микрочип добавил в библиотеку низкоуровневых функций (lib30) функцию открытия файла на носителе компа:
int __attach_input_file(const char *) - позволяет програмисту "присоединить" хост-файл к стандартному потоку ввода stdin. Более подробно в readme.txt на компилятор и в документе "16-BIT LANGUAGE TOOLS LIBRARIES" в папке doc компилятора.
Надо только будет включить симуляцию UART в свойствах симулятора, иначе ничего работать не будет.
После этого можно открывать любой файл и получать из него данные. Но надо иметь в виду, что таким способом файл открывается в режиме "r" (текстовый только на чтение). Интереснее работать с двоичными файлами, поэтому желательно библиотеку перекомпилить (батник идет в составе).
Если внимательно посмотреть на исходники, видно что микрочип добавил работу с файлами в симуляторе во все низкоуровневые функции. Поэтому можно сделать веселее - открывать файл на чтение и запись, и даже создавать файлы. Вот это круто.
<c>
#include <libpic30.h>
#include <stdio.h>
FILE *fp;
int main(void)
{
volatile U16 ret;
volatile U32 cnt = 0;
volatile U08 sym;
/* просто открываем файл input.txt в папке sim, относительно загружаемого в симулятор coff файла */
fp = fopen("sim\\input.txt", "r+b");
while (!feof(fp))
{
sym = getc(fp);
cnt++;
}
/* конец файла - теперь можем туда чего нибудь записать */
ret = putc(0x55, fp);
fflush(fp);
/* записалсо */
ret = fclose(fp);
/* попробуем теперь файл создать... */
fp = fopen("sim\\test_w.txt", "a+b");
/* создалсо!!! */
ret = putc(0x55, fp);
fflush(fp);
ret = fclose(fp);
for (;;);
return 0;
}
</c>
очень удобно...
-
- А у меня несколько вопросов по этому поводу M@ik(285 знак., 19.04.2007 15:00, )
- ИМХО Gamma SPb(547 знак., 19.04.2007 16:15, )
- А у меня несколько вопросов по этому поводу M@ik(285 знак., 19.04.2007 15:00, )