|
Ресурсы в Си |
|
|
|
 |
Ответов
|
Dec 15 2012, 09:06
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Огурцов @ Dec 15 2012, 10:01)  А может ли он обрабатывать не файл, а каталог ? Если нет, то он не подходит. Вообще, из того малого, что я нашел, ничего не подошло. Вот никогда не интересовался ничем подобным. Что значит «обрабатывать не файл, а каталог»? Одной специальной программой все файлы из каталога перегнать в кучу файлов с С-массивами? Тогда Вам нужно сделать с .bin файлами то же самое, что уже делается с .c/.cpp/.S файлами при изготовлении из них .o -- компилятор берет по одному и обрабатывает по одному. А чтобы такая программа, как компилятор, взяла все и обработала всё -- так над ней стоит программа управления проектом (насколько я помню, и в BC5 можно было указать, что для тех-то типов файлов, включенных в проект, нужно предварительлно вызвать такой-то обработчик). Так зачем каждый раз искать программу, которая кроме преобразования форматов умеет обрабатывать списки каталогов с масками файлов? С таким подходом Вам всегда «из того малого, что найдёте» в большинстве случаев ничего не подойдёт. Если я правильно понимаю, именно в этом различие путей, которые сейчас называются unix way и windows way. Задача «перетоптать все файлы заданного типа из всех указанных каталогов из bin в C» состоит из двух частей 1) «перетоптать все файлы заданного типа из всех указанніх каталогов любым заданным образом» 2) «перетоптать конкретным образом один файл» 1) уже решено на уровне Makefile как минимум для *.c, *.cpp, *.asm файлов. Т.е. это уже решённая задача. Остаётся найти для 2) нужный перекодировщик. make (scons по вкусу) хорошо справляется с организацией обработки проектов. В старые добрые времена make помогал ускорить обработку относительно больших схем в pcad 4.5, разбитых на файлы с отдельными листами схем и make не запускал перегонку в netlist или через plt в postscript для тех листов, которые не менялись. Сейчас make помогает на многоядерном процессоре распараллелить обработку отдельных сканированных страниц для последующего склеивания их в pdf (задача по сути абослютно та же, что и с программой -- сначала перегнать отдельные исходники в промежуточный формат, потом их склеить). Кстати, а предлагаемая Вами bin2c умеет сама распараллеливаться? «Если нет, то не подходит»™ srecord хорошо преобразовывает бинарные форматы sox хорошо обрабатывает звуковые файлы Каждая хорошо делает свою работу. И нечего нагружать какую-то из них «несвойственными ей функциями», а потом жаловаться, что именно такой комбинации нет. p.s[0] «Типичным способом решения какой-либо задачи в Unix является разбить ее на максимально простые подзадачи, каждую из которых умеет решать какая-нибудь известная вам программа, после чего заставить эти программы работать „на конвейере”, передавая свой результат следующей в цепочке.» p.s[1] Загрузил виртуалку, запустил IAR/STM8 -- на дереве проекта правая кнопка мыша, «Custom build» -- выбрать расширение и команду для обработки незнакомых IAR-у файлов, включенных в проект. Думаю, и там всё можно сделать до уровня «включил в проект и автоматически подхватилось».
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Dec 15 2012, 09:33
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(ReAl @ Dec 15 2012, 09:06)  Так зачем каждый раз искать программу, которая кроме преобразования форматов умеет обрабатывать списки каталогов с масками файлов? С таким подходом Вам всегда «из того малого, что найдёте» в большинстве случаев ничего не подойдёт. Согласен, именно поэтому простые вещи быстрее написать, если оно не решается стандартными (в данном случае, как в VS) средствами, чем найти. Или разобраться. А в следующий раз подправлю пару строчек. Кстати, код занял ровно сто строк. Цитата(ReAl @ Dec 15 2012, 09:06)  «Типичным способом решения какой-либо задачи в Unix является разбить ее на максимально простые подзадачи, каждую из которых умеет решать какая-нибудь известная вам программа, после чего заставить эти программы работать „на конвейере”, передавая свой результат следующей в цепочке.» Ок, как бы вы решили задачу включения проект и работы с неопределенным, но известным на этапе компиляции набором файлов ? Если более конкретно, как бы реализовали поиск нужного файла по его имени во время выполнения приложения ?
|
|
|
|
|
Dec 15 2012, 09:56
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Так быстрее написать только потому, что ищете не то. Цитата(Огурцов @ Dec 15 2012, 11:33)  Согласен, именно поэтому простые вещи быстрее написать, если оно не решается стандартными (в данном случае, как в VS) средствами, чем найти. Или разобраться. А в следующий раз подправлю пару строчек. Кстати, код занял ровно сто строк. Странно. В старючем BC5 были средства, в IAR есть, а в VS нет? Или речь не о включении в проект файлов, требующих другого вида обработки, нежели C/asm ? Цитата(Огурцов @ Dec 15 2012, 11:33)  Ок, как бы вы решили задачу включения проект и работы с неопределенным, но известным на этапе компиляции набором файлов ? Если более конкретно, как бы реализовали поиск нужного файла по его имени во время выполнения приложения ? Во время выполнения какого приложения? make? сам найдёт по указанным правилам. srec_cat или прочего конвертора файлов? Ему make скажет. Про задачу включения в проект набора файлов, определенного заданным для проекта набором каталогов и масок -- линк в нужную сторону я давал, Вы сказали, что столько не выпьете. Посмотрите ещё makefile в GCC-примерах scmRTOS — там везде перечень .cpp/.S файлов из указанных каталогов проекта подбирается во время запуска make. С бинарными то же самое, только добавляются маски и правила обработки в духе того $(OBJDIR)/%.o : %.bin единый makefile в примерах Cortex-M3makefile проекта и общая часть для всех в примерх AVR
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Dec 15 2012, 10:54
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(ReAl @ Dec 15 2012, 09:56)  Странно. В старючем BC5 были средства, в IAR есть, а в VS нет? Впорос был про ride7, в VS есть и совершенно так, как мне надо. Цитата(ReAl @ Dec 15 2012, 09:56)  Или речь не о включении в проект файлов, требующих другого вида обработки, нежели C/asm ? С преобразованем одного файла вопросов нет, верю. А вот как поиметь поиск файлов если их обрабатывать поодиночке не пойму. Как генерится каталог ? Цитата(ReAl @ Dec 15 2012, 09:56)  Во время выполнения какого приложения? Моего приложения, в которое д.б. включены данные из нефиксированного количества файлов с доступом к ним по имени файла. Цитата(ReAl @ Dec 15 2012, 09:56)  общая часть для всех Не вижу ни строчки похожей на типа: Код const struct file_entry { uint32_t size; const unsigned char * pname; const unsigned char * pdata; } catalog [file_count] = { {file_1_size, file_1_name, file_1_data}, {file_2_size, file_2_name, file_2_data}, ............... }
|
|
|
|
Сообщений в этой теме
Огурцов Ресурсы в Си Dec 13 2012, 09:03 esaulenka Я перегоняю в массив, включаю файл в проект, а дал... Dec 13 2012, 09:44 Огурцов 2 ReAl: спасибо, но мне столько точно не выпить (с... Dec 14 2012, 23:57 hd44780 Огурцов, файл-то в каком формате? Dec 13 2012, 09:45 ReAl Цитата(Огурцов @ Dec 13 2012, 11:03) Подс... Dec 14 2012, 07:40      ReAl Цитата(Огурцов @ Dec 15 2012, 12:54) Не в... Dec 16 2012, 14:40       Огурцов Цитата(ReAl @ Dec 16 2012, 14:40) Вот так... Dec 16 2012, 15:43 ReAl Там ошибочка :-)
Код @echo "$(foreach... Dec 18 2012, 12:05
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|