-
Постов
1 611 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Весь контент juvf
-
аэронавигация, промышленное/тяговое энергоснабжение. Очень интересно.... Особый язык - это АСМ? Критические куски пишете на асме? ps стало интересно, что там в боингах.... погуглил.... Ada, ось для Ada, даже Windows есть, но винда там не в системах=жизнь.
-
я так не считаю. я в этой теме писал, что стоит куб использовать в больших проектах. Я тоже не понимаю, почему кто-то "фу, калокуб"? А где там кал? Да, хал (впрочем как и спл) громоздкая. Но это != глючная. Есть конкретный глюк в hal? Я не считаю свой код лучше индусского, ровно как и хуже, поэтому я не брезгую HAL/SPL. Более того, я считаю, что популярная РТОС стабильнее самописного loop. Но не смотря на то, что используется, хал/спл/лл/свойКод /ртос - в любом случае нужно тестировать конечное ПО. Если индусский код кривой, то кривизна обнаружиться сразу. я на боинге не работаю, но в смежной отрасли работаю. Могу от первого лица сказать - линукс (и не только) используется в авиации, сплошь и рядом. И купленный в составе с роутером, и в составе промышленной микроЭВМ, и свои сборки линукса из исходников. Я не предполагаю, я говорю. Сертификацию проходим в соответствии с требованиями всего изделия (например: "изделие должно обеспечивать выходной импульс шириной 3.5 мкс ±0.1" - а как вы это делаете? хал или спл, ртос или луп, верилог или си - это вообще всем до лампочки). Отдельно ПО не сертифицируется. Нет таких стандартов. Может такой стандарт и есть, если есть дайте пруфлинк. Вы свечку держали? Не знаю о чем вы говорите, возможно у вас на предприятии так и есть. Свой язык? Это как? В автомобильном контроллере, ту часть кода, что управляет обдувом ног будете писать на си, а управление тормозами на особом языке? Мы всё пишем на Си/С++. Вы мне доказываете как делается в нашей отрасли и на наших предприятиях? Я вам не хочу доказывать за всех и за вас, я говорю за себя и за ту отрасль в которой я работаю - нет ни каких сертифицированных либ и чего-то отдельно особоважного. Важно всё. чаще у неокрепших умов создается впечатление, что у них руки не из плеч. А вот у профессионалов динозавров-консерваторов, те да.... те несправившись с инитом в хале, выпиливают его и чуть-ли не свой стартап на асме пишут, со словами "тут без хала всё просто, лучше выучить и всё написать самому, хал - отстой/глючный/громоздкий/индусский". ps я своё мнение высказал про куб/хал. Я влез в дискуссию, чтоб развеить подобные мифы. Может быть в боинге так и есть, управление вентиляцией не тщательно тестируют, а работу закрылок более тщательно, но на предприятиях, которые разрабатывают системы, связанные с жизнью, картина немного другая. Пишут ПО, тестируют, сертифицируют. Особыми либами и особыми инструментами не пользуются. Используют и спл, и хал, и линукс. Находят глюки в купленных корках альтеры - переписывают на свои. Находят дыры в ПО у ti - переписывают и т.д. .... Отдельно ПО не сертифицируется, сертифицируется весь комплекс. Есть мифы, что для чистого звука, нужен особый USB кабель. И есть мифы, что важное ПО как-то по особому пишется, без хал, на специальном языке. Одинаково всё пишется. pps все мои высказывания - только касательно встроенного ПО, где и используется HAL. Что касается сертификации и тестирования системного и прикладного ПО, которое продается/поставляется как ПО без железа (всякие астра-линуксы) - тут я молчу.
-
Это наверно вы думаете что так есть, или что так должно быть. Или вы так пишете. Я пишу любой код как для космоса.... хоть для систем посадки, хоть для бытовой техники. И на предприятиях, где я принимаю участие в разработках, пишут максимально ответственно. Я тут не спорю, просто констатирую факт. Да, согласен, просто так ни кто этого делать не будет. Но если вы пишете ПО - вы обязаны это сделать. Для любого ПО. Эти тесты и испытания не такие уж и дорогостоящие. Если это зарядной устройство для аккумулятора - то какие там могут быть дорогие испытания? Если пойдет устройство в массы и софт начнет глючить - это гибель производителю. Если это система посадки - тут тесты не дороже... тут само устройство больше, соответственно и тестов больше, включая облёты. И ПО пишется, что для бытовухи, что для систем жизнеобеспечения одинакового, с применением одинаковых IDE, компиляторов, библиотек.... Если кто-то считает что иначе - я вас разочарую.
-
Абсолютно одинакового. Что ПО для авиации (как для гражданской, так и для военной), что ПО для автоматической поливки комнатных цветов - пишется абсолютно одинакового. Или кто-то для военной авиации использует годный софт, а для гражданской глючный? Кто-то для кухонных весов использует заведомо глючный компилятор? Или в коде для гражданской авиации можно на ноль делить?
-
Однозначно стоит! +1, ППКС. Я не заметил особой разницы в нагромождениях HAL, SPL, LL. Документация от ST по мне, так достаточно понятная. Вожусь с TI-RTOS, CCS, cortex m3 от TI - вот это жуть!!! Вот это сплошное нагромождение и глюк на глюке. На фоне продуктов TI, продукты ST - это свет во тьме. Не сочтите за рекламу.
-
2018 Вопросы начинающих
juvf ответил Sanchosd тема в Altium Designer, DXP, Protel
Спасибо. Нашел эти настройки, нашел вкл/откл, управление цветом. В панели PCB выбирается цвет и цепь для подсветки. -
2018 Вопросы начинающих
juvf ответил Sanchosd тема в Altium Designer, DXP, Protel
А дальше? Выставил Net Identirier Scope в значение Global, вроде с тестовыми портами объединил в одну цепь. Это то? Но всё равно что-то не так. См скрин... цепь вроде объеденилась, то почему теперь эта цепь подсвечена шашечками? Clear и Reset Error Markers не помогает. Просто если изначально проект создавать в АД, то ни чего специально настраивать не нужно. Net Identirier Scope установлен Automatic (Base on project contents). Эотт проект - результат импорта проекта из EAGLE, позможно из EAGLE були подхваченны какието особые настройки, только я не смог их убрать. -
2018 Вопросы начинающих
juvf ответил Sanchosd тема в Altium Designer, DXP, Protel
Это где? Меню->Project->Project Options... Тут? А дальше? Не могу найти настройку Net Label. У меня нет разных NetLabel, у меня одинаковые NetLabel. Для эксперимента добавил на одну схему новый разъем, назначил ему рефдес XP123456. Объединил его выводы цепью и назвал цепь NetLabel23ASDFG. См Снимок.png Скопировал XP123456 с его цепями в буфер и вставил на другой лист. Переименовал рефдес в XP654321. Экспортирую схему в PCB. Получаю ошибку "Duplicate Net Names Wire NetLabel23ASDFG", см скриншот из Message. На пп добавилось два разъема, но у одного нет цепей. См скрин. Почему возникает эта ошибка? Почему альтиум говорит Duplicate Net Names Wire? ps вообще - что эта ошибка означает? Перевод понятен "Обнаружен дубликат имени цепи". Но ведь Net Label и создан для того, чтобы объединять цепи, т.е. если встречается две не обедненные цепи, и на них ставится одинаковая метка, то считается, что это одна цепь. Почему альтиум упорно продолжает считать что это разные цепи и говорит, что я назвал разные цепи одним именем? -
2018 Вопросы начинающих
juvf ответил Sanchosd тема в Altium Designer, DXP, Protel
В разных схемах (на разных листах) одного проекта объеденил цепь через Net Label. При экспорте в PCB выскакивает ошибка "Duplicate Net Names Wire GPIO_1". В PCB эти цепи обозначает как GPIO_1, но не объединяет, считает, что это разные цепи. Как сказать альтиуму, что это одна цепь? -
2018 Вопросы начинающих
juvf ответил Sanchosd тема в Altium Designer, DXP, Protel
Проверил на 100 раз. Более того.... Метку скопировал с одного листа, вставил в другой лист. в схемном редакторе можно цепи(порту) назначить имя выбрав из списка. в списке одно имя ResetUsb. В PCB редакторе в списке два имени. ps Проект изночально сделан в Eagle. Потом встроенным в АД экспортером экспортирован в АД. Потом в АД добавил новый лист с схемой. Так вот в этом новом листе назначаю имена цепям как вол всем проекте.... часть цепей в PCB дублируется и не объеденяется. Такое чувство, как будь-то есть какойто класс цепей. И с одного листа схемы цепь входит в класс (пространство имён) (EAGLE->USBRESET), с ногово листа не входит в этот класс. -
2018 Вопросы начинающих
juvf ответил Sanchosd тема в Altium Designer, DXP, Protel
На разных листах схемы обозначил одну и туже цепь меткой ResetUsb, на PCB эти цепи разные. В свойствах КТ можно указать руками нужную ыеп, но там почему то две цепи с именем ResetUsb Почему AD Сделал две разные цепи с одинаковым именем? Как их объединить? -
Slave HAL FreeRTOS
juvf ответил simark1979 тема в FreeRTOS
с халом HALом косяк. См исходники В блокирующем чтении да, не выйдем из приема, пока не получим нужное кол-во байт, либо по таймауту. в неблокирующем режиме по прерываниям, тут ворде можно можно получить переменное кол-во байт. Вызывайте HAL_I2C_Slave_Receive_IT(hi2c, pData, 255); на сколько я понял, в обработчике прерывания не контролируется размер принятых байт. хал в прерывании автоматом будет ловить принятые байты и стоп. После появления STOP-условия прием завершиться и будет вызвана функция void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c). Определите у себя в коде void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c). Кол-во принятых байт 255 - hi2c->XferSize. Из неё отправляйте в таск эвент/флаг/сигнал/мессадж... ps на сколько я понял, если вызвать HAL_I2C_Slave_Receive_IT(hi2c, pData, 2);, а мастер передаст больше 2-х байт, стрельните себе HAL выстрелит вам в ногу. -
Slave HAL FreeRTOS
juvf ответил simark1979 тема в FreeRTOS
Не понятно в чем вопрос? В эмуляции i2c, или в эмуляции ds1307? раз не указываете мк, то подразумевается, что аппаратного i2c слейва на борту нет и вам нужен ногодрыг? Ногодрыг можно так реализовать: из даташита на ds1307 SCL на максимальной частоте (100 кГц). Один так на и2ц 0,01 мс. Про реализацию такого ногодрыга средствами ртос - забудьте. Обычно у ртос системный тик 1 мс. Нужно делать на прерываниях: GPIO + TIM. Делайте глобальные переменные, в которых размешаете текущее состояние и2ц, текущий номер бита, адреса, команды и т.п. Изначально текущее состояние и2ц ESTABLISHED. Ловите прерывание на SCL по заднему фронту, если при этом на SDA было лог "1", то состояние меняете на "Ожидание tHD:STA". Запускаете таймер ждете.... если сработало прерывание на SDA 1-0, то был старт. Если сработал таймер, то возвращаетесь в ESTABLISHED (ожидание старта). если был старт, то запускаете таймер на ожидание фронта 0-1 на CLK, меняете состояние на "ожидание первого байта адреса". Пришло прерывание 0-1 на CLK - читаете SDA. Таймер перезапускаете на ожидание 1-0 на SCL..... и т.д. Т.о. весь протокол реализуете.... Там, где слейв должен дать АСК, меняете направление порта и дает "0". По приему Stop можно в RTOS выстовить флаг/евент из прерывания о полученных данных. Задача ожидает флаг/евент.... по флагу разблокируется и обработает данные. Эмуляция ds1307 - тут что не понятно? Заводите структуру как Карта aдресов, что типа такой typedef union { struct { uint8_t sec; uint8_t min; uint8_t hour; uint8_t week; uint8_t day; uint8_t mount; uint8_t year; uint8_t control; uint8_t array[56]; }mem; uint8_t data[64]; } ds1307Mem; * приходит от мастера к слейву старт условие, * 7 бит адреса Addr, * 1 бит команды WRITE, * слейв передает ACK ( переводит порт SDA в OUT и выдает 0, затем опять переводит порт в in), * мастер передает в слейв 1-ый байт, * слейв выдает аск, * мастер передает в слейв 2 байт, * слейв выдает аск, * мастер передает в слейв 3 байт, * слейв выдает аск, * мастер передает в слейв 4 байт, * слейв выдает аск, .... * мастер выдает стоп. В прерывании при обнаружении STOP условия послать эвент в задачу о приеме n-байт, которые нужно записать по указателю &ds1307Mem.data[Addr]. Естественно проверяем выход Addr за пределю массива ds1307Mem.data[]. Обрабатываем ds1307Mem.mem.control, если вы эмулирете Output control. Для кошерности запускаем ещё один таймер или же в задаче системного тика эмулируем счет времени и меняем по мере изменения времени данные в ds1307Mem. как-то так. -
для эстетов Он в любом случае пожизненно хранится (занимает память) во флеш... до вызова функции он храниться (занимает память) во флеш, во время вызова хранится (занимает память) и в ОЗУ и во флеш.:laughing:
-
Он в любом случае пожизненно живет во флеш... до вызова функции он живет только во флеш, во время вызова живет и в ОЗУ и во флеш.
-
Глобальные данные в FreeRTOS/CMSIS RTOS
juvf ответил simark1979 тема в FreeRTOS
void vTask1( void * pvParameters ) { for(;; ) { // Task code goes here. // ... // At some point the task wants to perform a long operation during // which it does not want to get swapped out. It cannot use // taskENTER_CRITICAL ()/taskEXIT_CRITICAL () as the length of the // operation may cause interrupts to be missed - including the // ticks. // Prevent the RTOS kernel swapping out the task. vTaskSuspendAll (); // Perform the operation here. There is no need to use critical // sections as we have all the microcontroller processing time. // During this time interrupts will still operate and the RTOS kernel // tick count will be maintained. // ... // The operation is complete. Restart the RTOS kernel. xTaskResumeAll (); } } -
Глобальные данные в FreeRTOS/CMSIS RTOS
juvf ответил simark1979 тема в FreeRTOS
Так нельзя. Можно, если только все операции записи в структуру атомарные. Я бы сделал глобальную структуру и при записи/чтении уходил бы в критическую секцию. -
Eagle2Altium
juvf ответил juvf тема в Altium Designer, DXP, Protel
слои имортер не различает, руками нужно будет приводить. а вот размеры - это плохо. ps да нужно готовый птичий проект поправить. я в eagle только посмотреть могу. Не охото eagle осваивать. Хотелось в теплоламповый AD перетянуть. Дак это поянтно. А от куда качать? Гугл не знает, или по какому ключевому слову найти? Друзья, помогли ваши подсказки + обменестратор. Кому интересно/пригодиться - вот в чем проблема: я работаю под юзером. альтиум ставился под администратором. При попытки установить дополнение через Global installation, запускался uac и просил права администратора. Я вводил админа и пароль.... дальнейший апдейт шел под правами админа. А под правами админа в альтиуме стоит оффлайн инсталляция с //nx-db/.... , т.е. путь стоял туда, от куда ставился альтиум. этого пути давно нет и ресурса //nx-db/.. давно нет. А пользователю в альтиуме не видны настройки Preference/System/Installation/Global installation service администратора. Я перегрузился админом, указал Global installation - импортер встал как надо. Перегрузился в юзера, импортировал орла в альтиум - плата импортировалась отлично. И пп и схему (правда без библиотек) Всем спасибо!!!! -
Eagle2Altium
juvf ответил juvf тема в Altium Designer, DXP, Protel
соответствующее окно вроде нашел, та же где и Global installation, а какую ссылку дать? Нужно качать что-то или указать ссылку в облаке? -
Eagle2Altium
juvf ответил juvf тема в Altium Designer, DXP, Protel
перезагрузил АД - не помогло. в менеджере лицензий пишет что я is now signed in, активна ссфлка sing out а офланово есть возможность установить этот импортёр? -
Eagle2Altium
juvf ответил juvf тема в Altium Designer, DXP, Protel
-
Eagle2Altium
juvf ответил juvf тема в Altium Designer, DXP, Protel
Спасибо за подсказку. А где приписывать источник расширений? И какой сервер альтиума нужно прописывать? -
Eagle2Altium
juvf опубликовал тема в Altium Designer, DXP, Protel
Пытаюсь импортировать проект из Eagle в Altium. В AD есть импортер, но в коробке его нет. Доставляется через Extrnsions->Extrnsions&Update->Configure галочка EAGLE. При попытке установить импортер выскакивает сообщение... Почему? Для AD16 больше нет этого импортёра? или может что в настройках AD нужно докрутить? -
Бестрансформаторный БП
juvf ответил razrab83 тема в В помощь начинающему
Я знаю. Разбирал. Причем один производитель, из перечисленных вами, делает именно по AN-559 от AD на их чипе, и именно с БТБП. Есть счетчик другого производителя из вами перечисленных, там чип другой, но питается он тоже от БТБП. Все эти схемы и фото разобранных счетчиков легко гуглятся. По этическим соображениям, я не буду тут давать ссылки на них, ибо не хочу делать рекламу/антирекламу производителям, а также не хочу давать перекрёстные ссылки на другие форумы. Я могу сказать следующее: посмотрите AN-559 - это типичная схема эл. счетчика, по которой делают счетчики конечные производители в РФ, не изобретая велосипед. Хотите знать как устроен счетчик - см ан559. Если не верите - погуглите схемы. Я не говорю, что абсолютно все счетчики с БТБП, свечку не держал. Но я вскрывал несколько штук.... один из самых массовых в РФ сделан как в AN-559, с БТБП. -
Бестрансформаторный БП
juvf ответил razrab83 тема в В помощь начинающему
Вы меня пугаете! ))) Ещё раз отвечаю - в сообщении #74. Я же показал, где была опубликована ссылка. Опубликовал её ТС 9 декабря, 2017 года, в 12:12, в сообщении #74. И про AD ТС писал. Судя по вашему высказыванию вы сообщение #74 не читали.