Выкладываю обещанную многопоточную версию 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();
Newlib
-
Last edited by Serge on Sat Mar 12, 2011 1:49 pm, edited 1 time in total.
Я так понимаю библиотеку для распаковки видео в формате OBJ так не сотворить?
Просто мне не улыбается ради такой библиотеки еще Fplay дизассемблировать, одного kpack уже через край - три недели мозги в разнос.
Просто мне не улыбается ради такой библиотеки еще Fplay дизассемблировать, одного kpack уже через край - три недели мозги в разнос.
Mario
Зачем так извращаться ? Немного потерпите, выложу скомпилированные библиотеки ffmeg-0.6, патч для svn (заливать исходники на наш сервер imho лишнее), свежий fplay (мне наконец удалось синхронизировать звук и видео. Таки можно смотреть, если есть звук ) и все исходники.
Никто не запрещает писать под Libc на ассемблере. Скомпилировать и слинковать 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
Зачем так извращаться ? Немного потерпите, выложу скомпилированные библиотеки ffmeg-0.6, патч для svn (заливать исходники на наш сервер imho лишнее), свежий fplay (мне наконец удалось синхронизировать звук и видео. Таки можно смотреть, если есть звук ) и все исходники.
Никто не запрещает писать под Libc на ассемблере.
Code: Select all
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
objcopy -O binary my_asm_app.exe my_asm_app
Здорово, обязательно попробую
Замечательно, а то я уже в депрессию скатываться начал.Serge wrote:Немного потерпите, выложу скомпилированные библиотеки ffmeg-0.6, патч для svn (заливать исходники на наш сервер imho лишнее), свежий fplay (мне наконец удалось синхронизировать звук и видео. Таки можно смотреть, если есть звук ) и все исходники.
Ну, пока я еще C++ не освоил, но идея доставляет.Serge wrote:Никто не запрещает писать под Libc на ассемблере.
Нафиг С++. Чистый Си, без всяких извращений. Если учесть что уже есть отлаженная malloc, строковые функции, файловый ввод-вывод, qsort, математическая библиотека (возможно с ошибками ), то есть смысл её использовать. Там есть распаковщик kpack!!!
Serge
Распаковка LZMA уже есть давно в ассемблерном виде в приложении Desktop, впрочем то что я получил от дизассемблера имеет более компактный код. Есть еще библиотека Kfar_arc. Я же переделываю именно упаковщик на асм. Распаковщик то вообще с полпинка заработал - там код простой.
Кстати чистый Си имеет режимы оптимизации компиляции? Нам бы максимальную скорость, чтобы на старых машинах шло.
З.Ы, Да, кстати порекомендуйте кто-нибудь хорошую, годную книгу. Где разжеван Си также, как разжеван ассемблер у Юрова, Зубкова и Пирогова. Могу честно сказать если бы не эти три автора, то я бы много и долго плюхался когда начинал. Особенно помог именно Юров. Желательно электронную версию.
Распаковка LZMA уже есть давно в ассемблерном виде в приложении Desktop, впрочем то что я получил от дизассемблера имеет более компактный код. Есть еще библиотека Kfar_arc. Я же переделываю именно упаковщик на асм. Распаковщик то вообще с полпинка заработал - там код простой.
Кстати чистый Си имеет режимы оптимизации компиляции? Нам бы максимальную скорость, чтобы на старых машинах шло.
З.Ы, Да, кстати порекомендуйте кто-нибудь хорошую, годную книгу. Где разжеван Си также, как разжеван ассемблер у Юрова, Зубкова и Пирогова. Могу честно сказать если бы не эти три автора, то я бы много и долго плюхался когда начинал. Особенно помог именно Юров. Желательно электронную версию.
Я взял распаковщик из ядра. Режимов оптимизации у компилятора масса. Обычно компилируют с ключами -O2 или -O3 для скорости и -Os для размера. Полный список есть здесь, раздел 3.10.
Была очень неплохая книга "Просто и ясно о Borland C++". Две главы посвящены С и там действительно всё расписано просто и ясно. В сети полно сканов http://itbookz.ru/nodata/nodatalang/2391-.html. Главы 2 и 3 для начинающих Сишников. ++часть тоже неплоха.
Была очень неплохая книга "Просто и ясно о Borland C++". Две главы посвящены С и там действительно всё расписано просто и ясно. В сети полно сканов http://itbookz.ru/nodata/nodatalang/2391-.html. Главы 2 и 3 для начинающих Сишников. ++часть тоже неплоха.
Serge
Спасибо за ссылку.
З.Ы. Может еще кому пригодиться (тыцкать сюда), чтобы не качать с нестабильных хранилищ.
Спасибо за ссылку.
З.Ы. Может еще кому пригодиться (тыцкать сюда), чтобы не качать с нестабильных хранилищ.
Поздравляю! Отличная работа.
Думаю с Newlib портировать программы в Колибри станет намного проще.
Особенно рад новости о новой версии fplay c синхронизацией аудио и видео.
Наверное придётся всё-таки восстановить Win
Думаю с Newlib портировать программы в Колибри станет намного проще.
Особенно рад новости о новой версии fplay c синхронизацией аудио и видео.
Наверное придётся всё-таки восстановить Win
Собственно зачем? Разве под Linux нельзя скомпилить?Asper wrote: Наверное придётся всё-таки восстановить Win
Mario
Я учил С (а потом и C++) тоже на Borland C++. В нём нет лишних виндовских и линуксовых особенностей, которые усложняют понимание языка на первых порах. Думаю, что с него действительно проще всего начинать.
Я учил С (а потом и C++) тоже на Borland C++. В нём нет лишних виндовских и линуксовых особенностей, которые усложняют понимание языка на первых порах. Думаю, что с него действительно проще всего начинать.
Может и можно, но думаю, что нужно будет обновлять большинство пакетов (Zenwalk довольно старой версии стоит), да и Линукс я не очень-то люблю.Mario wrote:Собственно зачем? Разве под Linux нельзя скомпилить?Asper wrote: Наверное придётся всё-таки восстановить Win
Asper wrote:Наверное придётся всё-таки восстановить Win
Собственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_оAsper wrote:да и Линукс я не очень-то люблю.
Не-а, наша...Mario wrote:Собственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_оAsper wrote:Наверное придётся всё-таки восстановить WinСобственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_оAsper wrote:да и Линукс я не очень-то люблю.
О_ОAsper wrote:Не-а, наша...Mario wrote:Собственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_оAsper wrote:Наверное придётся всё-таки восстановить WinСобственно мой мозг не переваривает эти два параграфа. Неужели BSD? О_оAsper wrote:да и Линукс я не очень-то люблю.
???
Че правда? О_О
Who is online
Users browsing this forum: No registered users and 1 guest