The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Ричарда Столлман опубликовал книгу по языку Си и расширениям GNU, opennews (ok), 07-Сен-22, (0) [смотреть все] –1

Сообщения [Сортировка по времени | RSS]


151. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (-), 07-Сен-22, 14:00 
> А crt.o тогда что такое?

Startup какой-нить. Он так-то опция, начиная с C99 режим freestanding регламентирован, и в нем может быть вообще совсем нихрена. Есть только один мелкий нюанс: у си есть все же некие ожидания от окружения. И вообще совсем без стартапа - окей, а эти ожидания как заимплементятся? В некоторых случаях можно выпендриться и сделать это прямо на си, однако этот кусок кода будет работать с нестандартными допущениями насчет среды выполнения, и это катит не на любом проце.

Ответить | Правка | Наверх | Cообщить модератору

205. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от аНОНИМ (?), 07-Сен-22, 18:37 
На stm32 стартап прекрасно пишется на самом си, на нём же пишется и например таблица векторов прерываний (помогает ещё и линкер тут со своими weak символами, естественно). Правда, интринсики из CMSIS нужны, ну так они везде нужны, и внутри себя они по сути - инлайновый асмовый код (точнее пара-тройка команд). Весь проект может не содержать ни строчки руками написанного асма.
Ответить | Правка | Наверх | Cообщить модератору

277. "Ричарда Столлман опубликовал книгу по языку Си и расширениям..."  +/
Сообщение от Аноним (277), 08-Сен-22, 10:19 
> На stm32 стартап прекрасно пишется на самом си, на нём же пишется
> и например таблица векторов прерываний (помогает ещё и линкер тут со
> своими weak символами, естественно).

Да, в cortex M ядро проца дружественно к таким начинаниям. И, кстати, я тоже все это умею :P.

> Правда, интринсики из CMSIS нужны, ну так они везде нужны,

Можно и без всего этого при должном желании, я проверял. И даже совсем без асма и интринсиков можно по минимуму, но mmaped регистрами IRQ все же разрешать-запрещать канительно, CPSID I (aka __disable_irq()) 1 команда, сильно эффективнее.

> и внутри себя они по сути - инлайновый асмовый код (точнее пара-тройка команд).

Я их даже имплементить научился. Не люблю деление на богов и лузеров. Ну или если кто настаивать будет, я тогда за первых буду, нежели вторых. На черные ящики от богов пусть другие молятся.

> Весь проект может не содержать ни строчки руками написанного асма.

Да, и это прикольная фича Cortex M. Правда я так и не понял почему некоторые регистры через память не адресабельны, только спецкомандами, коли уж задались вон той целью. А так да, удобно когда хэндлеры с тем же ABI что и просто функции.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру