Jump to content

    
Sign in to follow this  
allegrovision

требуется программист STM32

Recommended Posts

В одном из проектов у меня было:

1. Самый нижний уровень: элементарные транзакции по SPI с FLASH/FRAM - чтение непрерывного блока байт, запись непрерывного блока байт, стирание страницы FLASH и т.п.

Диспетчеры, журналы, атомарный доступ, "разные службы" - это как бы уже часть ОС и подобия файловой системы.

Автор то тут четко выразился что ему нужны только работа с каналами передачи.

1-2 имхо разделять на собственное АПИ если это не высокоструктурированный проект или часть ОС смысла нет, все в один файл, 1 объявить статиком, а 2 сделать в виде АПИ.

Если все разносить по файлам, то у компилятора не будет возможность глубоко оптимизировать все это.

Share this post


Link to post
Share on other sites
Диспетчеры, журналы, атомарный доступ, "разные службы" - это как бы уже часть ОС и подобия файловой системы.

ОС - это только управление задачами. Всё остальное - дополнительные модули.

 

Автор то тут четко выразился что ему нужны только работа с каналами передачи.

Это где Вы такое узрели в его посте??? :wacko: Из каналов передачи там только UART.

 

1-2 имхо разделять на собственное АПИ если это не высокоструктурированный проект или часть ОС смысла нет, все в один файл,

Смысл есть ибо это совершенно разные вещи. Находятся они в одном файле или в разных - это никак не относится к разбиению на логические уровни.

Разделение этих двух частей, даёт возможность легко наращивать функциональность при добавлении других устройств на данной SPI-шине: планировщик транзакций (арбитр шины) - отдельно, обработка самих транзакций - отдельно для каждого устройства на шине - своя для каждого устройства.

Своё разбиение я привёл как пример. В другой прикладной задаче/приборе вполне возможно будет другое разбиение.

Share this post


Link to post
Share on other sites
ОС - это только управление задачами. Всё остальное - дополнительные модули.

ОС это распределение памяти, машинного времени и механизмы доступа и синхронизации.

 

Это где Вы такое узрели в его посте??? :wacko: Из каналов передачи там только UART.

I2C, ADC тоже можно считать каналом передачи :) но в целом да, он хочет иметь доступ к разной периферии, не только передавать данные.

 

Смысл есть ибо это совершенно разные вещи. Находятся они в одном файле или в разных - это никак не относится к разбиению на логические уровни.

Разделение этих двух частей, даёт возможность легко наращивать функциональность при добавлении других устройств на данной SPI-шине: планировщик транзакций (арбитр шины) - отдельно, обработка самих транзакций - отдельно для каждого устройства на шине - своя для каждого устройства.

Своё разбиение я привёл как пример. В другой прикладной задаче/приборе вполне возможно будет другое разбиение.

Ну я свою классификацию тоже привел как пример, ибо писал LockFree OS и она перенесена в том числе под STM32.

 

Но до конца не понятно где заканчивается его нижний уровень, и что он имеет ввиду под верхним, нужно ему АПИ или интерфейс драйвера для какой то RTOS.

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

 

Share this post


Link to post
Share on other sites

Линукс не установить на систему без MMU. Так что, не надо фантазировать!

Share this post


Link to post
Share on other sites
Нет. Ибо на Cortex-M ни линух ни тем более винда - невозможны.

а freertos ?

Share this post


Link to post
Share on other sites
Линукс не установить на систему без MMU. Так что, не надо фантазировать!

uCLinux

 

P.S. можно, конечно, ещё эмуляторы писать (и некоторые это делают), но зачем...

Edited by one_eight_seven

Share this post


Link to post
Share on other sites
из перриферии: UART, ADC, COMP, DAC, I2C, Timer.

Может оказаться что это драйвер двигателя, тюнер SDR, анализатор спектра или вибродатчиков.... линукс и ртос там не очень требуется.

Share this post


Link to post
Share on other sites
Линукс не установить на систему без MMU. Так что, не надо фантазировать!

Можно.

1) ucLinux на ядре 2.6. версии

2) Linux на ядре от 4.6 версии на жирные камни, а ля 429, с недавних пор.

 

так что можно уже фантазировать открывшиеся новые возможности...

Share this post


Link to post
Share on other sites
2) Linux на ядре от 4.6 версии на жирные камни, а ля 429, с недавних пор.

Ну-ну... с недавних пор в "а ля 429" самопроизвольно возник MMU??? :biggrin:

 

так что можно уже фантазировать открывшиеся новые возможности...

Фантазировать можно сколько угодно, но реальность безжалостна..... :laughing:

Share this post


Link to post
Share on other sites
ucLinux

Это никак к линуксу не относится!

Еще раз: нет MMU == нет линукса!

Хватит меня уже бредом кормить!

Share this post


Link to post
Share on other sites
Это никак к линуксу не относится!

Это форк линукса. Более того, много наработок uCLinux'а пошли в основную ветку. Так что относится и ещё как относится

 

Еще раз: нет MMU == нет линукса!

Хватит меня уже бредом кормить!

Есть только два мнения - моё и неправильное. Очень правильная позиция, да.

 

uCLinux != Linux

Debian != Linux

Fedora != Linux.

Linux != Linux.

 

Ваши слепые верования не имеют ничего общего с реальным положением вещей.

Share this post


Link to post
Share on other sites

Ну хватит уже чушь нести!!!

Почитайте хотя бы, что такое линукс!

И да, дебилиан уже не линукс, а тем более — федора! Все, что перестало подчиняться требованиям UNIX-way, можно смело называть мастдайкой и топить в унитазе.

Эдак вы, батенька, такое откровенное дерьмище, как ондроед, линуксом обзовете!

Edited by Эдди

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this