Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт дек 09, 2016 8:50 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 201 сообщение ]  На страницу 1 2 3 4 514 След.
Автор Сообщение
 Заголовок сообщения: Newlib
СообщениеДобавлено: Пт окт 29, 2010 11:34 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3907
Выкладываю обещанную многопоточную версию Newlib для mingw32. В папке test исходники теста malloc для 8 потоков. Работа еще не завершена, но для компиляции fplay достаточно.

Updated 12.03.2001
Особенности реализации.
Библиотека использует TLS. fs:[0] хранит pid текущего потока , fs:[4] нижнюю границу стека, fs:[8] верхнюю границу стека, fs:[12] адрес служебной структуры _reent. Код для работы с TLS будет добавлен позднее. Вывод в stdout и stderr перенаправляется на доску отладки. stdin не реализован.
Линковать -nostdlib -static -T kos.ld --image-base 0 --stack <размер стека>
objcopy -O binary <имя приложения>.exe
Обязательно указывайте размер стека !
В многопоточных приложениях для создания новых потоков используйте библиотечную функцию int create_thread();


Последний раз редактировалось Serge Сб мар 12, 2011 1:49 pm, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 11:57 am 
Я так понимаю библиотеку для распаковки видео в формате OBJ так не сотворить?
Просто мне не улыбается ради такой библиотеки еще Fplay дизассемблировать, одного kpack уже через край - три недели мозги в разнос.


Вернуться к началу
   
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 12:56 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3907
Mario

Зачем так извращаться ? Немного потерпите, выложу скомпилированные библиотеки ffmeg-0.6, патч для svn (заливать исходники на наш сервер imho лишнее), свежий fplay (мне наконец удалось синхронизировать звук и видео. Таки можно смотреть, если есть звук :lol: ) и все исходники.

Никто не запрещает писать под Libc на ассемблере.
Код:
format MS COFF

section '.text' code readable align 16

_main:
    push msg_Hello
    call _printf
    add esp, 4
    xor eax, eax
    ret

msg_Hello db 'Hello world', 0
Скомпилировать и слинковать ld -nostdlib -static -T kos.ld --image-base 0 --stack 0x4000 -o my_asm_app.exe main.o libc.a
objcopy -O binary my_asm_app.exe my_asm_app


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 1:05 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Здорово, обязательно попробую :)


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 1:10 pm 
Serge писал(а):
Немного потерпите, выложу скомпилированные библиотеки ffmeg-0.6, патч для svn (заливать исходники на наш сервер imho лишнее), свежий fplay (мне наконец удалось синхронизировать звук и видео. Таки можно смотреть, если есть звук :lol: ) и все исходники.

Замечательно, а то я уже в депрессию скатываться начал. :)
Serge писал(а):
Никто не запрещает писать под Libc на ассемблере.

Ну, пока я еще C++ не освоил, но идея доставляет.


Вернуться к началу
   
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 1:21 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3907
Нафиг С++. Чистый Си, без всяких извращений. Если учесть что уже есть отлаженная malloc, строковые функции, файловый ввод-вывод, qsort, математическая библиотека (возможно с ошибками :) ), то есть смысл её использовать. Там есть распаковщик kpack!!!


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 1:46 pm 
Serge
Распаковка LZMA уже есть давно в ассемблерном виде в приложении Desktop, впрочем то что я получил от дизассемблера имеет более компактный код. Есть еще библиотека Kfar_arc. Я же переделываю именно упаковщик на асм. Распаковщик то вообще с полпинка заработал - там код простой.

Кстати чистый Си имеет режимы оптимизации компиляции? Нам бы максимальную скорость, чтобы на старых машинах шло. :mrgreen:

З.Ы, Да, кстати порекомендуйте кто-нибудь хорошую, годную книгу. Где разжеван Си также, как разжеван ассемблер у Юрова, Зубкова и Пирогова. Могу честно сказать если бы не эти три автора, то я бы много и долго плюхался когда начинал. Особенно помог именно Юров. Желательно электронную версию.


Вернуться к началу
   
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 2:39 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3907
Я взял распаковщик из ядра. Режимов оптимизации у компилятора масса. Обычно компилируют с ключами -O2 или -O3 для скорости и -Os для размера. Полный список есть здесь, раздел 3.10.

Была очень неплохая книга "Просто и ясно о Borland C++". Две главы посвящены С и там действительно всё расписано просто и ясно. В сети полно сканов http://itbookz.ru/nodata/nodatalang/2391-.html. Главы 2 и 3 для начинающих Сишников. ++часть тоже неплоха.


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 3:45 pm 
Serge
Спасибо за ссылку.

З.Ы. Может еще кому пригодиться (тыцкать сюда), чтобы не качать с нестабильных хранилищ.


Вернуться к началу
   
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 4:38 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 971
Поздравляю! Отличная работа.
Думаю с Newlib портировать программы в Колибри станет намного проще.
Особенно рад новости о новой версии fplay c синхронизацией аудио и видео. :)

Наверное придётся всё-таки восстановить Win :)


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 4:42 pm 
Asper писал(а):
Наверное придётся всё-таки восстановить Win :)

Собственно зачем? Разве под Linux нельзя скомпилить?


Вернуться к началу
   
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 4:48 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 971
Mario
Я учил С (а потом и C++) тоже на Borland C++. В нём нет лишних виндовских и линуксовых особенностей, которые усложняют понимание языка на первых порах. Думаю, что с него действительно проще всего начинать.

Mario писал(а):
Asper писал(а):
Наверное придётся всё-таки восстановить Win :)

Собственно зачем? Разве под Linux нельзя скомпилить?


Может и можно, но думаю, что нужно будет обновлять большинство пакетов (Zenwalk довольно старой версии стоит), да и Линукс я не очень-то люблю.


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 5:00 pm 
Asper писал(а):
Наверное придётся всё-таки восстановить Win :)

Asper писал(а):
да и Линукс я не очень-то люблю.

Собственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_о


Вернуться к началу
   
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 5:03 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 971
Mario писал(а):
Собственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_о
Asper писал(а):
Наверное придётся всё-таки восстановить Win :)

Asper писал(а):
да и Линукс я не очень-то люблю.

Собственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_о

Не-а, наша... 8)


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт окт 29, 2010 5:09 pm 
Asper писал(а):
Mario писал(а):
Собственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_о
Asper писал(а):
Наверное придётся всё-таки восстановить Win :)

Asper писал(а):
да и Линукс я не очень-то люблю.

Собственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_о

Не-а, наша... 8)

О_О
???
Че правда? О_О


Вернуться к началу
   
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 201 сообщение ]  На страницу 1 2 3 4 514 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB