|
|
|
А почему так инициализация |
|
|
|
Jul 25 2018, 17:52
|
Профессионал
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831
|
Цитата(DASM @ Jul 25 2018, 20:48) А как понять "из списка доступных билдов нужно лишь выбрать нужный под нужную ОСь и пересобрать проект"? Под ядро я имел в виду ось, ибо эмбеддерские это все же больше ядра просто, иногда с плюшками, не суть Под ядром я понимаю ядро - CPU, т.е. железо. Под RTOS - я понимаю ОСь, т.е. программную библиотеку, которой по сути является любая ОСь. Я уже уточнил, что делал разные билды под разные ОСи с целью выяснить, какая ось для меня ловчее. В одном из проектов. В других проектах поменять ось чуть дольше - для этого нужно к проекту подключить соотв. библиотеку нужной оси (заранее собирается в библиотеку), а ненужную удалить. Настройки ОСи и сам код не меняются и не зависит от ОСи. Это очень удобно при сопровождении проекта и переносе кусков проекта с одного железа на другое.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Jul 25 2018, 18:15
|
Гуру
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493
|
Цитата(Forger @ Jul 25 2018, 20:52) Под ядром я понимаю ядро - CPU, т.е. железо. Под RTOS - я понимаю ОСь, т.е. программную библиотеку, которой по сути является любая ОСь. Я уже уточнил, что делал разные билды под разные ОСи с целью выяснить, какая ось для меня ловчее. В одном из проектов. В других проектах поменять ось чуть дольше - для этого нужно к проекту подключить соотв. библиотеку нужной оси (заранее собирается в библиотеку), а ненужную удалить. Настройки ОСи и сам код не меняются и не зависит от ОСи. Это очень удобно при сопровождении проекта и переносе кусков проекта с одного железа на другое. Я вообще о том, что перенести проект из freeRtos под, например, scmRtos это отнюдь не две минуты. Впрочем это ни о чем, как и весь топик. Хотя полезное есть и в нем (топике)
|
|
|
|
|
Jul 25 2018, 18:34
|
Профессионал
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831
|
Цитата(DASM @ Jul 25 2018, 21:15) Я вообще о том, что перенести проект из freeRtos под, например, scmRtos это отнюдь не две минуты. Да, если он изначально был написан конкретно под freeRTOS. Я же немного про другое )) Цитата Впрочем это ни о чем, как и весь топик. В этом смысле он почти ничем не отличается от большинства топиков в этом разделе :D
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Jul 26 2018, 04:49
|
Местный
Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264
|
Цитата(jcxz @ Jul 26 2018, 00:30) Это аналог: (uint)((x) & 255) но выглядит проще. Так и подумалось вначале. Цитата(Forger @ Jul 26 2018, 00:35) И будем переписывать, например, freeRTOS по-русски. Вот я уже придумал название: "бесплОС" или "бесплатОС" А мы не смеемся. Вот только есть один момент. Законопроекта как такового пока что нет, а вот пути развития уже поставлены - собственно, действительно была поставлена задача разработки отечественного ПО, и начали все с ОСРВ... Пока в рамках международного форума по информационным системам на службе ОПК РФ. Как назвать? ПонОС - "ПОНятная Операционная Система" Цитата(DASM @ Jul 26 2018, 06:32) БолгенОС уже была.. Тссс, вдруг он сейчас зарегистрируется и будет кричать "не БолгенОС а Болдженос"?
|
|
|
|
|
Jul 26 2018, 12:42
|
Гуру
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847
|
Цитата(jcxz @ Jul 25 2018, 13:20) Да ладно? Про какой компилятор речь? IAR вполне себе тоже "проглатывает" ((( В примере: Код 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 этой самой константы, т.е. неизвестно, с какого конца целого числа будут выкладываться символы Если вам всё равно как именно она формируется, то использовать можно.
|
|
|
|
|
Jul 26 2018, 12:56
|
Профессионал
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831
|
Цитата(XVR @ Jul 26 2018, 15:42) Единственный её минус В данном случае это - не единственный минус. В этом достаточно убедится, попытавшись дать не sizeof(int), а меньше символов, например 2 или 3. Компилятор предупредит соотв. warning, но проект все равно успешно соберется. Не трудно догадаться, что предсказать результат работы такой функции в этом случае уже никто не сумеет ...
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Jul 26 2018, 13:39
|
Гуру
Группа: Свой
Сообщений: 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" (второе вообще даст ошибку)
|
|
|
|
|
Jul 26 2018, 13:47
|
Профессионал
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831
|
Цитата(XVR @ Jul 26 2018, 16:39) Т.е. вы утверждаете, что запись int v='1'; неправильна? Не утверждаю, а лишь спрашиваю Цитата Никакого мусора 'из стека'. И да, стандарт эти 'нюансы' описывает. Ясно, значит, недостающие байты во многобайтовой переменной будут заполнены нулями. А BE/LE влияет на положение этих неявных нулей в переменной? С какой стороны будет "обрезана" слишком длинная литеральная константа (например, '12345678' для 4-байтового int) с учетом BE/LE? Цитата Может вы спутали литеральные константы и строки? Не спутал, мне известна разница. Честно говоря, никогда не использовал подобные неявные инициализации - многобайтовые литеральные константы. И, судя по всему, правильно делал
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|