|
|
  |
свежак KGP win32/arm/avr/mips/m68k, GNU tools chain |
|
|
|
Oct 15 2010, 08:39
|
Группа: Участник
Сообщений: 12
Регистрация: 19-08-10
Пользователь №: 59 015

|
Цитата(dimay192 @ Oct 12 2010, 14:23)  Значит такс: 1.проект на С++ В общем, структура кода приблизительно такова: Главная ф-ция: [code]ResourceManager RM;
[ кусь... ] Здравствуйте. Хочу поделиться/посоветовать. Пишу на С++. У меня вроде с разрастанием кода все неплохо стало  Даже с virtual, pure virtual и т.д. Терпимо - <1,5K всяких либ прилинковывается, самое ненужное - libunwind на 432 байта. Что сделал: 1. syscalls_r1.c - обязательно всякие sbrk и др. 2. new_delete_fOS_r1.cpp - new и delete переделал под FreeRTOS, но главное вызываются malloc и free 3. ещё добавил: // При вызове линкера через $(CPP) всё проходит, но из библиотеки libgcc++ в bss помещается много фигни // (её можно отрубить, включив отбор неиспользуемых функций, но это не всегда надо), // поэтому определим вызов функции и всё работает при линковке из $(CC) // call to a pure virtual function happened ... wow, should never happen ... stop void __cxa_pure_virtual(void) { while(1); } Может и вам поможет  Успехов.
|
|
|
|
|
Oct 20 2010, 07:17
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 20-08-08
Пользователь №: 39 711

|
Ок... Общее направление действий понял... Пока решил не заморачиваться за С++ (к сожалению мало времени, чтобы ковырять библы). Перевел тот же проект на С и все встало на места - лишнего не тащит, размер кода пришел в норму... А разобраться надо будет обязательно! Но пока и так сойдет!
/******************************************************** ************ Всем спасибо за внимание и участие! ************ ********************************************************/
|
|
|
|
|
Oct 22 2010, 09:34
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 10-01-07
Пользователь №: 24 278

|
Можно ли в этой сборке заставить gcc генерировать объектники в COFF формате? По ключикам пробежался, вроде ни чего похожего нет  Надо прилинковать ассемблерную функцию скомпилированную gcc к проекту в VS.
|
|
|
|
|
Oct 22 2010, 10:45
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Цитата(Trizna @ Oct 22 2010, 13:34)  Можно ли в этой сборке заставить gcc генерировать объектники в COFF формате? По ключикам пробежался, вроде ни чего похожего нет  Надо прилинковать ассемблерную функцию скомпилированную gcc к проекту в VS. gcc для x86 выдает объектники и исполняймые в формате PE. откуда такие сложности? VS таки ассемблер разучился компилять? Вы навно чтото для winCE ваяите?
|
|
|
|
|
Oct 22 2010, 10:47
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 10-01-07
Пользователь №: 24 278

|
Цитата(demiurg_spb @ Oct 22 2010, 13:22)  почитайте про ELF->COFF converter
ИМХО objcopy Вам поможет (доки на binutils почитайте) Похоже имеющийся objcopy только под elf заточен  d:\TVV\My Dropbox\Temp\cortex>arm-kgp-eabi-objcopy --info CODE BFD header file version (Klen's GCC package (KGP) for ARM/elf platform) 2.20.51.20101005 elf32-littlearm (header little endian, data little endian) arm elf32-bigarm (header big endian, data big endian) arm elf32-little (header little endian, data little endian) arm elf32-big (header big endian, data big endian) arm srec (header endianness unknown, data endianness unknown) arm symbolsrec (header endianness unknown, data endianness unknown) arm verilog (header endianness unknown, data endianness unknown) arm tekhex (header endianness unknown, data endianness unknown) arm binary (header endianness unknown, data endianness unknown) arm ihex (header endianness unknown, data endianness unknown) arm
elf32-littlearm elf32-bigarm elf32-little elf32-big srec arm elf32-littlearm elf32-bigarm elf32-little elf32-big srec
symbolsrec verilog tekhex binary ihex arm symbolsrec verilog tekhex binary ihex
Сообщение отредактировал Trizna - Oct 22 2010, 10:52
|
|
|
|
|
Oct 22 2010, 10:58
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 10-01-07
Пользователь №: 24 278

|
Цитата(klen @ Oct 22 2010, 13:45)  gcc для x86 выдает объектники и исполняймые в формате PE. откуда такие сложности? VS таки ассемблер разучился компилять? Вы навно чтото для winCE ваяите? Я ваяю под windows mobile. Армовский ассемблер от микрософта, которым я раньше пользовался не поддерживает Cortex, пришлось использовать gcc? вот мучаюсь пока... Цитата(klen @ Oct 22 2010, 13:54)  у вас один выход - коветнуть. Не подскажете чем?
|
|
|
|
|
Oct 22 2010, 11:51
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Цитата(Trizna @ Oct 22 2010, 14:58)  Не подскажете чем? ну нада поискать в инете, я не искал. если нет то сами напишите и дайте людям. с форатом ELF нет проблем - есть офицальные доки + бинутилс это сборник примеров как его парсить и модифицировать, вопрос по COFF, говнокодовцы из редмонта дают на него доки? свежак mingw64: http://klen.org/Files/DevTools/x86_64_kgp_...w32_20101022.7zarm-eabi под x86_64: http://klen.org/Files/DevTools/kgp_arm_eab..._64_20101022.7z
|
|
|
|
|
Oct 22 2010, 15:47
|

Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 10-10-07
Из: Воронежа
Пользователь №: 31 250

|
Цитата(klen @ Oct 22 2010, 15:51)  Распаковал kgp_arm_eabi_x86_64_20101022.7z при попытке запуска пишет, что arm-kgp-eabi-gcc.exe не является приложением Win32
--------------------
- Бендер, ты же робот, зачем тебе пить пиво? - Незачем! Я могу бросить в любой момент!
|
|
|
|
|
Oct 22 2010, 16:40
|

Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 10-10-07
Из: Воронежа
Пользователь №: 31 250

|
Понятно. Смутила надпись x86_64, обычно пишут либо х86, либо х64 (насчет корректности записи х64 не знаю, но пишут так почти везде), подумал, что там две версии, а потом не обратил внимания, что в архиве только одна. ИМХО, не стоит отказываться от х86, ибо всё еще бывают проблемы с дровами для специфических девайсов и с некоторым ПО.
--------------------
- Бендер, ты же робот, зачем тебе пить пиво? - Незачем! Я могу бросить в любой момент!
|
|
|
|
|
Oct 22 2010, 16:53
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Цитата(injen-d @ Oct 22 2010, 20:40)  Понятно. Смутила надпись x86_64, обычно пишут либо х86, либо х64 (насчет корректности записи х64 не знаю, но пишут так почти везде), подумал, что там две версии, а потом не обратил внимания, что в архиве только одна. ИМХО, не стоит отказываться от х86, ибо всё еще бывают проблемы с дровами для специфических девайсов и с некоторым ПО. я считаю так - первая хрень это архитектура(читай набор инструкций) вторая это разрадность. поэтому указываю и то и другое. отказыватся НАДА, только не всегда это возможно. нада старатся. на линуксе это произошло вместе с процессорами. я щас соберу и выложу. хотя нехотелось
|
|
|
|
|
Oct 22 2010, 17:01
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(klen @ Oct 22 2010, 22:26)  для 32битных масдаев я не собрал - давайте медленно но верно относить старье на помойку истории. Ну это вы напрасно  Думаю, что значительно более половины тутошних виндузятников сидит под ХР 32-бит, и ещё какое-то время никуда не двинутся. Особенно в свете того, что, как я читал, 7-я винда не даёт ставить неподписанные дрова (прощайте LPT-шные программаторы с giveio, прощай olimex MSP430-JTAG-TINY, и ещё куча интересных железок.) Ну или, если говорить только про себя, то лично я пока сижу под ХР 32-бит
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
  |
13 чел. читают эту тему (гостей: 13, скрытых пользователей: 0)
Пользователей: 0
|
|
|