|
HAL, сколько можно фиксить ? |
|
|
|
Apr 8 2016, 15:16
|

Участник

Группа: Участник
Сообщений: 65
Регистрация: 28-12-05
Из: Odessa
Пользователь №: 12 673

|
Очень важная тема думаю. Давайте будем озвучивать подозрения на некорректную работу HAL, у кого были какие проблемы с периферией при использовании этого "индусского" кода ? В основном интересует тесты на убой; в частности электро-помехи на UART линии выявили полную неработоспособность реализации HAL. Это не касается "ORE"! Потому-что валовая мода на HAL, приведет к хаосу качества программного обеспечения. Кто-то останется без работы  . - - - Проблемы с UART: Некорректная обработка прерываний, приводящая к зависанию системы, конкретно: Low Noise и Frame Error . Анализ кода показал, что "писатели" не понимают принципов сброса большинства статусных состояний в регистре состояния SR (до десятка чтений регистра SR). Лишние действия по четности бит. - - - Система прерываний, вернее вызов специфических обработчиков, затормозили опять до уровня архитектуры 7DTMI, все очень медленно. Передача указателя и так в известный контекст выполнения. По видимому начало разработки HAL по времени взято с времен архитектуры 7TDMI, где подобные задержки можно было бы понять и простить.
|
|
|
|
|
 |
Ответов
|
Apr 13 2016, 09:58
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
У меня все биты с комментариями. В комментарии до двоеточия - документированное описание бита (из хидера), после двоеточия - конкретная выбранная функция. И, вообще, все биты, что есть в устройстве. Ни один не пропущен (кроме битовых полей, из которых использую младший, умножая; конкретную функцию задает-то все поле). И я могу: 1. Легко изменить режим работы, меняя нолики на единички, или одно число на другое. 2. Использовать этот фрагмент, как заготовку, в другом проекте. Умножаю на столько, сколько описано в руководстве для этого поля. Конкретно, для показанного случая, читаем: Цитата Bits 6:4 MMS[2:0]: Master mode selection These bits allow to select the information to be sent in master mode to slave timers for synchronization (TRGO). The combination is as follows: 000: Reset - the UG bit from the TIMx_EGR register is used as trigger output (TRGO). If the reset is generated by the trigger input (slave mode controller configured in reset mode) then the signal on TRGO is delayed compared to the actual reset. 001: Enable - the Counter enable signal, CNT_EN, is used as trigger output (TRGO). It is useful to start several timers at the same time or to control a window in which a slave timer is enabled. The Counter Enable signal is generated by a logic OR between CEN control bit and the trigger input when configured in gated mode. When the Counter Enable signal is controlled by the trigger input, there is a delay on TRGO, except if the master/slave mode is selected (see the MSM bit description in TIMx_SMCR register). 010: Update - The update event is selected as trigger output (TRGO). For instance a master timer can then be used as a prescaler for a slave timer. 011: Compare Pulse - The trigger output send a positive pulse when the CC1IF flag is to be set (even if it was already high), as soon as a capture or a compare match occurred. (TRGO) 100: Compare - OC1REF signal is used as trigger output (TRGO) 101: Compare - OC2REF signal is used as trigger output (TRGO) 110: Compare - OC3REF signal is used as trigger output (TRGO) 111: Compare - OC4REF signal is used as trigger output (TRGO) Защиты от превышения нет. Ну, так, мало ли что кому в голову взбредет. Можно и однобитовую переменную умножить на 999, если мозгов нет. То, что бит не один, а целое поле, видно по его названию, где в конце всегда стоит _0. Были косяки в хидерах, но они исправляются.
|
|
|
|
|
Apr 13 2016, 10:20
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (ViKo @ Apr 13 2016, 12:58)  У меня все биты с комментариями. Вижу. Это и ДОПОЛНИТЕЛЬНО и напрягает. QUOTE 1. Легко изменить режим работы, меняя нолики на единички, или одно число на другое. А НЕ изменить при этом комментарий ЕЩЕ проще  . По этой причине ститя комментирования подобного Вышему категорически избегаю. QUOTE Защиты от превышения нет. Ну, так, мало ли что кому в голову взбредет. Можно и однобитовую переменную умножить на 999, если мозгов нет. А где граница наличия мозгов? Умножение на 3 это есть мозги, или уже нет?  QUOTE То, что бит не один, а целое поле, видно по его названию, где в конце всегда стоит _0. Это Ваше личное знание. Я первым делом-бы подумал, что это таки значение поля. Наверное мозгов нет ;(
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
картошка HAL Apr 8 2016, 15:16 pitt Цитата* THIS SOFTWARE IS PROVIDED BY THE COPYRIGH... Apr 8 2016, 15:39 картошка Цитата(pitt @ Apr 8 2016, 19:39) А что вы... Apr 8 2016, 17:09  SSerge Цитата(картошка @ Apr 9 2016, 00:09) ... Apr 8 2016, 17:17  Ruslan1 Цитата(картошка @ Apr 8 2016, 20:09) ... Apr 8 2016, 17:57 SSerge Да нечего там обсуждать, для реальных проектов это... Apr 8 2016, 16:57 twix У меня вопрос к знатокам HAL. Он же для любой сери... Apr 8 2016, 18:08 scifi Цитата(twix @ Apr 8 2016, 21:08) У меня в... Apr 8 2016, 18:58  AlexandrY Цитата(scifi @ Apr 8 2016, 21:58) Да нет,... Apr 8 2016, 20:06   Alechek Цитата(AlexandrY @ Apr 9 2016, 01:06) HAL... Apr 9 2016, 08:22   scifi Цитата(AlexandrY @ Apr 8 2016, 23:06) Да ... Apr 9 2016, 09:04    mantech Цитата(scifi @ Apr 9 2016, 12:04) Имелось... Apr 9 2016, 18:05    LightElf QUOTE (scifi @ Apr 9 2016, 12:04) Имелось... Apr 11 2016, 15:55 pitt Использование HAL, в понимании многих - ускорение ... Apr 8 2016, 20:24 Alechek Спрятаться то оно может и для всех, только даже из... Apr 9 2016, 11:27 romas2010 Цитата(Alechek @ Apr 9 2016, 14:27) Спрят... Apr 9 2016, 13:45 ViKo Дались вам эти порты. Есть куда более интересные п... Apr 9 2016, 18:49 scifi Цитата(ViKo @ Apr 9 2016, 21:49) Например... Apr 9 2016, 19:42 pitt HAL ничего не убивает. Это просто еще один инструм... Apr 9 2016, 23:04 romas2010 Цитата(pitt @ Apr 10 2016, 02:04) Я полаг... Apr 10 2016, 18:41  scifi Цитата(romas2010 @ Apr 10 2016, 21:41) эт... Apr 10 2016, 20:02   AlexandrY Цитата(scifi @ Apr 10 2016, 23:02) Есть п... Apr 10 2016, 20:44 Огурцов hal - это от слова ад, добро пожаловать
он имел бы... Apr 9 2016, 23:08 pitt Цитата(Огурцов @ Apr 9 2016, 18:08) hal -... Apr 10 2016, 17:07  Огурцов Цитата(pitt @ Apr 10 2016, 18:07) Hell
а ... Apr 10 2016, 17:41   ViKo Цитата(Огурцов @ Apr 10 2016, 20:41) а по... Apr 10 2016, 17:55    Огурцов Цитата(ViKo @ Apr 10 2016, 17:55) Огурцов... Apr 10 2016, 19:39     pitt Цитата(Огурцов @ Apr 10 2016, 14:39) я не... Apr 10 2016, 20:49 AleksBak У микрочипа например - в 100 раз хуже его "HA... Apr 10 2016, 06:49 SSerge Цитата(AleksBak @ Apr 10 2016, 13:49) А т... Apr 10 2016, 17:14 Огурцов но гугель с вами не согласен Apr 10 2016, 21:24 pitt Цитата(Огурцов @ Apr 10 2016, 17:24) но г... Apr 10 2016, 23:31  scifi Цитата(pitt @ Apr 11 2016, 02:31) В англи... Apr 11 2016, 07:14 Tarbal Вот и я поимел опыт с HAL. Начальную установку и к... Apr 10 2016, 23:47 pitt Цитата(Tarbal @ Apr 10 2016, 19:47) Вот и... Apr 11 2016, 00:38  Tarbal Цитата(pitt @ Apr 11 2016, 04:38) Для тог... Apr 11 2016, 11:59 ViKo Если аббревиатуру можно произнести слитно, а не по... Apr 11 2016, 07:27 scifi Цитата(ViKo @ Apr 11 2016, 10:27) Но ... Apr 11 2016, 07:42  ViKo Цитата(scifi @ Apr 11 2016, 10:42) Я вижу... Apr 11 2016, 07:48 EasyToUse Помните, как мы работали раньше? ))) Как конфигури... Apr 11 2016, 07:30 AleksBak Цитата(EasyToUse @ Apr 11 2016, 11:30) ..... Apr 11 2016, 08:05  esaulenka Цитата(AleksBak @ Apr 11 2016, 11:05) У н... Apr 11 2016, 08:52   SasaVitebsk Цитата(esaulenka @ Apr 11 2016, 11:52) Ни... Apr 12 2016, 06:34 EasyToUse ЦитатаУ него механизм этот блокировки объектов реа... Apr 11 2016, 08:22 EasyToUse А если проверку этого флажка делать в критической ... Apr 11 2016, 09:06 AleksBak Цитата(EasyToUse @ Apr 11 2016, 13:06) А ... Apr 11 2016, 09:48 esaulenka Мне кажется, надо только переделать HAL_LockTypeDe... Apr 11 2016, 10:48 EasyToUse А лучше одну и ту же периферию не использовать в р... Apr 11 2016, 10:57 quarz Будь я модератором, убрал бы из темы 3/4 холивара ... Apr 11 2016, 17:06 Сергей Борщ Заинтересовало. Глянул. Свежескачанные кубы для 4x... Apr 12 2016, 06:56 AleksBak Цитата(Сергей Борщ @ Apr 12 2016, 10:56) ... Apr 12 2016, 07:39 SasaVitebsk 2 AleksBak.
Да никто ни на индусов ни на HAL не на... Apr 12 2016, 08:00 AleksBak Цитата(SasaVitebsk @ Apr 12 2016, 12:00) ... Apr 12 2016, 08:40 zltigo QUOTE (SasaVitebsk @ Apr 12 2016, 11:00) ... Apr 12 2016, 09:37  Obam Цитата(zltigo @ Apr 12 2016, 13:37) …И уж... Apr 12 2016, 10:47  Tarbal Цитата(zltigo @ Apr 12 2016, 13:37) Угу, ... Apr 12 2016, 10:52   zltigo QUOTE (Tarbal @ Apr 12 2016, 13:52) Да Бо... Apr 12 2016, 11:29  SasaVitebsk Цитата(zltigo @ Apr 12 2016, 12:37) Угу, ... Apr 12 2016, 11:11   zltigo QUOTE (SasaVitebsk @ Apr 12 2016, 14:11) ... Apr 12 2016, 11:33    SasaVitebsk Цитата(zltigo @ Apr 12 2016, 14:33) Я ино... Apr 13 2016, 06:42     zltigo QUOTE (SasaVitebsk @ Apr 13 2016, 09:42) ... Apr 13 2016, 06:50 x893 У меня такой подход - сначала кубом делается иници... Apr 12 2016, 11:31 zltigo QUOTE (x893 @ Apr 12 2016, 14:31) У меня ... Apr 12 2016, 11:39  Tarbal Цитата(zltigo @ Apr 12 2016, 15:39) Я во ... Apr 12 2016, 13:01   zltigo QUOTE (Tarbal @ Apr 12 2016, 16:01) Но не... Apr 12 2016, 13:26 Сега Цитата(x893 @ Apr 12 2016, 14:31) Из плюс... Apr 12 2016, 11:38 x893 Особо вдаваться не хочется. Да и для разных типов ... Apr 12 2016, 16:33 zltigo QUOTE (x893 @ Apr 12 2016, 19:33) Особо в... Apr 12 2016, 20:53 ViKo Не, одними регистрами не отделаешься. Приходится ч... Apr 13 2016, 06:56 KnightIgor Цитата(ViKo @ Apr 13 2016, 07:56) Не, одн... Apr 13 2016, 07:17  ViKo Цитата(KnightIgor @ Apr 13 2016, 10:17) О... Apr 13 2016, 08:04 zltigo QUOTE (ViKo @ Apr 13 2016, 09:56) Не, одн... Apr 13 2016, 08:46  ViKo Цитата(zltigo @ Apr 13 2016, 13:20) Это В... Apr 13 2016, 10:24   Сергей Борщ QUOTE (ViKo @ Apr 13 2016, 12:24) Вот тог... Apr 13 2016, 11:23    scifi Цитата(Сергей Борщ @ Apr 13 2016, 14:23) ... Apr 13 2016, 11:39    ViKo Цитата(Сергей Борщ @ Apr 13 2016, 14:23) ... Apr 13 2016, 11:46    AHTOXA Цитата(Сергей Борщ @ Apr 13 2016, 16:23) ... Apr 13 2016, 13:28     Сергей Борщ QUOTE (AHTOXA @ Apr 13 2016, 15:28) Ничег... Apr 13 2016, 13:43      AHTOXA Цитата(Сергей Борщ @ Apr 13 2016, 18:43) ... Apr 13 2016, 16:09   zltigo QUOTE (ViKo @ Apr 13 2016, 13:24) Основан... Apr 13 2016, 12:42 pitt de gustibus non est disputandum Apr 13 2016, 13:36 Tanya Вот еще добавлю...
Вдруг после очередного обновлен... Apr 13 2016, 15:41  Ruslan1 Цитата(Tanya @ Apr 13 2016, 18:41) Конечн... Apr 13 2016, 16:11  pitt Цитата(Tanya @ Apr 13 2016, 11:41) Вот ещ... Apr 13 2016, 16:17  Огурцов Цитата(Tanya @ Apr 13 2016, 15:41) Конечн... Apr 13 2016, 18:17 Baser ЦитатаКод2 * (PWR_CR_PLS & -PWR_CR_PLS... Apr 13 2016, 16:22 _Pasha ну не знаю... 0x11001000 * 5 = 0x55005000
это уж... Apr 13 2016, 16:56 AHTOXA Цитата(_Pasha @ Apr 13 2016, 21:56) ну не... Apr 13 2016, 17:28  ViKo Цитата(AHTOXA @ Apr 13 2016, 20:28) Речь ... Apr 13 2016, 20:56   Obam Цитата(ViKo @ Apr 14 2016, 00:56) Ага. Эт... Apr 14 2016, 09:08   Сергей Борщ QUOTE (ViKo @ Apr 13 2016, 22:56) Ага. Эт... Apr 14 2016, 09:27    AHTOXA Цитата(Сергей Борщ @ Apr 14 2016, 14:27) ... Apr 14 2016, 10:45 ViKo Скажите уже, что мой способ - и простой, и красивы... Apr 13 2016, 19:36 Kabdim Я извиняюсь, но почему бы не использовать структур... Apr 14 2016, 12:17 AlexandrY Цитата(Kabdim @ Apr 14 2016, 15:17) Я изв... Apr 14 2016, 12:30 Baser Цитата(Kabdim @ Apr 14 2016, 15:17) Я изв... Apr 14 2016, 12:37 Kabdim Цитата(AlexandrY @ Apr 14 2016, 15:30) По... Apr 14 2016, 12:38 ViKo Потому что у битовых полей их расположение в слове... Apr 14 2016, 12:44
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|