Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Jun 25, 2016 8:03 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 200 posts ]  Go to page 1 2 3 4 514 Next
Author Message
 Post subject: Newlib
PostPosted: Fri Oct 29, 2010 11:34 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3747
Выкладываю обещанную многопоточную версию 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();


Last edited by Serge on Sat Mar 12, 2011 1:49 pm, edited 1 time in total.

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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 12:56 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3747
Mario

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

Никто не запрещает писать под Libc на ассемблере.
Code:
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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 1:05 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Здорово, обязательно попробую :)


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 1:10 pm 
Serge wrote:
Немного потерпите, выложу скомпилированные библиотеки ffmeg-0.6, патч для svn (заливать исходники на наш сервер imho лишнее), свежий fplay (мне наконец удалось синхронизировать звук и видео. Таки можно смотреть, если есть звук :lol: ) и все исходники.

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

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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 1:21 pm 
Offline
Kernel Developer

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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 1:46 pm 
Serge
Распаковка LZMA уже есть давно в ассемблерном виде в приложении Desktop, впрочем то что я получил от дизассемблера имеет более компактный код. Есть еще библиотека Kfar_arc. Я же переделываю именно упаковщик на асм. Распаковщик то вообще с полпинка заработал - там код простой.

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

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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 2:39 pm 
Offline
Kernel Developer

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

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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 3:45 pm 
Serge
Спасибо за ссылку.

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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 4:38 pm 
Offline
User avatar

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

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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 4:42 pm 
Asper wrote:
Наверное придётся всё-таки восстановить Win :)

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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 4:48 pm 
Offline
User avatar

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

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

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


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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 5:00 pm 
Asper wrote:
Наверное придётся всё-таки восстановить Win :)

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

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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 5:03 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 968
Mario wrote:
Собственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_о
Asper wrote:
Наверное придётся всё-таки восстановить Win :)

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

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

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


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Oct 29, 2010 5:09 pm 
Asper wrote:
Mario wrote:
Собственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_о
Asper wrote:
Наверное придётся всё-таки восстановить Win :)

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

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

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

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 200 posts ]  Go to page 1 2 3 4 514 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited