реклама на сайте
подробности

 
 
6 страниц V  < 1 2 3 4 5 > »   
Closed TopicStart new topic
> А почему так инициализация
Forger
сообщение Jul 25 2018, 17:52
Сообщение #31


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(DASM @ Jul 25 2018, 20:48) *
А как понять "из списка доступных билдов нужно лишь выбрать нужный под нужную ОСь и пересобрать проект"?
Под ядро я имел в виду ось, ибо эмбеддерские это все же больше ядра просто, иногда с плюшками, не суть

Под ядром я понимаю ядро - CPU, т.е. железо.
Под RTOS - я понимаю ОСь, т.е. программную библиотеку, которой по сути является любая ОСь.
Я уже уточнил, что делал разные билды под разные ОСи с целью выяснить, какая ось для меня ловчее. В одном из проектов.
В других проектах поменять ось чуть дольше - для этого нужно к проекту подключить соотв. библиотеку нужной оси (заранее собирается в библиотеку), а ненужную удалить.
Настройки ОСи и сам код не меняются и не зависит от ОСи. Это очень удобно при сопровождении проекта и переносе кусков проекта с одного железа на другое.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
DASM
сообщение Jul 25 2018, 18:15
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(Forger @ Jul 25 2018, 20:52) *
Под ядром я понимаю ядро - CPU, т.е. железо.
Под RTOS - я понимаю ОСь, т.е. программную библиотеку, которой по сути является любая ОСь.
Я уже уточнил, что делал разные билды под разные ОСи с целью выяснить, какая ось для меня ловчее. В одном из проектов.
В других проектах поменять ось чуть дольше - для этого нужно к проекту подключить соотв. библиотеку нужной оси (заранее собирается в библиотеку), а ненужную удалить.
Настройки ОСи и сам код не меняются и не зависит от ОСи. Это очень удобно при сопровождении проекта и переносе кусков проекта с одного железа на другое.

Я вообще о том, что перенести проект из freeRtos под, например, scmRtos это отнюдь не две минуты. Впрочем это ни о чем, как и весь топик. Хотя полезное есть и в нем (топике)
Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 25 2018, 18:34
Сообщение #33


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(DASM @ Jul 25 2018, 21:15) *
Я вообще о том, что перенести проект из freeRtos под, например, scmRtos это отнюдь не две минуты.

Да, если он изначально был написан конкретно под freeRTOS.
Я же немного про другое ))

Цитата
Впрочем это ни о чем, как и весь топик.

В этом смысле он почти ничем не отличается от большинства топиков в этом разделе :D


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
DASM
сообщение Jul 25 2018, 18:42
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(Forger @ Jul 25 2018, 21:34) *
В этом смысле он почти ничем не отличается от большинства топиков в этом разделе :D

Ну кто же виноват, что stackoverflow нужный ответ за минуту находится. Просто иногда не находится ничего, потому что не ищешь, а не ищешь потому что даже не знаешь, что такое бывает ))
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 25 2018, 20:30
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(DASM @ Jul 25 2018, 19:24) *
Операционку он ucos юзал, не в восторге, но работает. Я хотел бы scmRTOS, но это потом. Кстати крутая программистка, которая тоже сидела над этим проектом за нее.

Сурово у вас.... За операционку уже сажают! как в 37-ом biggrin.gif

Цитата(Arlleex @ Jul 25 2018, 19:31) *
Зачем приводить к u8, а потом к uint?

Это аналог: (uint)((x) & 255) но выглядит проще.
Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 25 2018, 20:35
Сообщение #36


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(jcxz @ Jul 25 2018, 23:30) *
Сурово у вас.... За операционку уже сажают! как в 37-ом biggrin.gif

Раз пошла такая пьянка...
Вот мы тут хихикаем, а отечественные законотворцы начитаются этого и введут запрет на использование иностранных операционок в рамках импортозамещения ...
И будем переписывать, например, freeRTOS по-русски. Вот я уже придумал название: "бесплОС" или "бесплатОС" biggrin.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
DASM
сообщение Jul 26 2018, 02:32
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



БолгенОС уже была..
Go to the top of the page
 
+Quote Post
Arlleex
сообщение Jul 26 2018, 04:49
Сообщение #38


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Цитата(jcxz @ Jul 26 2018, 00:30) *
Это аналог: (uint)((x) & 255) но выглядит проще.

Так и подумалось вначале.

Цитата(Forger @ Jul 26 2018, 00:35) *
И будем переписывать, например, freeRTOS по-русски. Вот я уже придумал название: "бесплОС" или "бесплатОС" biggrin.gif

А мы не смеемся. Вот только есть один момент. Законопроекта как такового пока что нет, а вот пути развития уже поставлены - собственно, действительно была поставлена задача разработки отечественного ПО, и начали все с ОСРВ... Пока в рамках международного форума по информационным системам на службе ОПК РФ.
Как назвать? ПонОС - "ПОНятная Операционная Система" biggrin.gif

Цитата(DASM @ Jul 26 2018, 06:32) *
БолгенОС уже была..

Тссс, вдруг он сейчас зарегистрируется и будет кричать "не БолгенОС а Болдженос"?
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 26 2018, 12:42
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(jcxz @ Jul 25 2018, 13:20) *
Да ладно? Про какой компилятор речь? IAR вполне себе тоже "проглатывает" sad.gif(((

В примере:
Код
  static void Func(char *s) { s[1] = 0; }
  Func("test");
Это специальный случай - для него в стандарте сделали хак (иначе не назовёшь), иначе бы разломались практически все С программы (а С++ декларировался как совместимый с С, ха ха).



Цитата(DASM @ Jul 25 2018, 18:30) *
Еще интересный вопрос возник. Как вам такая штука
Код
int searchDB (int v)
{
//..............
}
.... main...
searchDB('1234');

Тут gcc дает warning что то там multibyte, точно не помню. Просто интересное применение, раньше как-то не встречал такую идею.
Нормальная multi byte символьная константа. Описана в стандарте. Единственный её минус (который практически не даёт её применять) - стандарт не описывает endianess этой самой константы, т.е. неизвестно, с какого конца целого числа будут выкладываться символы sad.gif
Если вам всё равно как именно она формируется, то использовать можно.

Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 26 2018, 12:56
Сообщение #40


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(XVR @ Jul 26 2018, 15:42) *
Единственный её минус

В данном случае это - не единственный минус.
В этом достаточно убедится, попытавшись дать не sizeof(int), а меньше символов, например 2 или 3.
Компилятор предупредит соотв. warning, но проект все равно успешно соберется.
Не трудно догадаться, что предсказать результат работы такой функции в этом случае уже никто не сумеет ...


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 26 2018, 13:01
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Forger @ Jul 26 2018, 15:56) *
В данном случае это - не единственный минус.
В этом достаточно убедится, попытавшись дать не sizeof(int), а меньше символов, например 2 или 3.
А в чём проблема? Вариант с одним символом у вас вопросов не вызывает, с 4мя тоже (положим что int - 32 бита). Чем вам 2 или 3 символа не нравятся?
Это же не строка, а символьный литерал.



'ABC' будет 0x414243 или 0x434241 (как карта ляжет). Других вариантов нет.
Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 26 2018, 13:03
Сообщение #42


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(XVR @ Jul 26 2018, 16:01) *
А в чём проблема?

Что будет в этой переменной int v, которую ожидает функция, если ей дать не '1234', а например '1', '12', '123' ?
Нули или "мусор" из стека? "Стандарт" описывает эти нюансы?


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 26 2018, 13:39
Сообщение #43


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Forger @ Jul 26 2018, 16:03) *
Что будет в этой переменной int v, которую ожидает функция, если ей дать не '1234', а например '1', '12', '123' ?
Т.е. вы утверждаете, что запись int v='1'; неправильна? Это что то новое, до сих пор миллионы програмистов ничего неорпеделённого в такой записи не видели.

По вашему вопросу - в v будет 0x31, 0x3132, 0x313233 или 0x31, 0x3231, 0x333231 соотвественно для BE/LE машин.

Цитата
Нули или "мусор" из стека? "Стандарт" описывает эти нюансы?
Никакого мусора 'из стека'. И да, стандарт эти 'нюансы' описывает.

Может вы спутали литеральные константы и строки? Речь шла о '1234' а не о "1234" (второе вообще даст ошибку)

Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 26 2018, 13:47
Сообщение #44


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(XVR @ Jul 26 2018, 16:39) *
Т.е. вы утверждаете, что запись int v='1'; неправильна?

Не утверждаю, а лишь спрашиваю wink.gif

Цитата
Никакого мусора 'из стека'. И да, стандарт эти 'нюансы' описывает.

Ясно, значит, недостающие байты во многобайтовой переменной будут заполнены нулями.
А BE/LE влияет на положение этих неявных нулей в переменной?
С какой стороны будет "обрезана" слишком длинная литеральная константа (например, '12345678' для 4-байтового int) с учетом BE/LE?

Цитата
Может вы спутали литеральные константы и строки?
Не спутал, мне известна разница.

Честно говоря, никогда не использовал подобные неявные инициализации - многобайтовые литеральные константы.
И, судя по всему, правильно делал sm.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
DASM
сообщение Jul 26 2018, 14:20
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



"С какой стороны будет "обрезана" слишком длинная литеральная константа" - ни с какой, даст ошибку компиляции
Go to the top of the page
 
+Quote Post

6 страниц V  < 1 2 3 4 5 > » 
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th April 2024 - 18:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01527 секунд с 7
ELECTRONIX ©2004-2016