-
- Для операций с битовыми полями не нужны спец. инструкции процессора в общем случае... - fk0(11.02.2019 23:37)
- В общем случае нет, но когда спешишь, бывают полезны. - Крок(12.02.2019 10:40)
- Да для того, чтобы жевать сопли, вообще никакие инструкции не нужны - подумаешь, каких-то лишних 100500 тактов займет - у нас их теперь много, а уж гавнокодеров и подавно - MBedder(12.02.2019 10:36)
- A = A & B или A = A | ~B. Здесь нет 100500 тактов, на типичном RISC процессоре это вообще делается за одну (между регистрами) или три (1 - загрузка из памяти, 2 - операция, 3 - запись в память) операции. Есть ньюансы с атомарным доступом, но они fk0(117 знак., 12.02.2019 12:13)
- Да нахер твою запись в твою память - МК работают через SFR, в которые напиханы 100500 битовых полей, и если этими полями можно рулить АППАРАТНО - то сила в этом великая есть. А в память свою можешь писать чем угодно, хоть прокладками Always - MBedder(12.02.2019 12:53)
- Сколько тактов потребуется RISC процессору, чтобы узнать кол-во отличных от нуля разрядов в 32-битном регистре? - Хаос(12.02.2019 12:25,
)
- В общем случае проблема описана в "Алгоритмических трюках для программистов" Г. Уоррена. По ссылке (другой источник, но есть в онлайне) много деталей, практически же код выглядит так: fk0(1535 знак., 12.02.2019 12:52, ссылка)
- Пожалуй, все же тыкну "ими всех налево и направо". :) Хаос(924 знак., 12.02.2019 13:09,
)
- Пожалуй, все же тыкну "ими всех налево и направо". :) Хаос(924 знак., 12.02.2019 13:09,
- В общем случае проблема описана в "Алгоритмических трюках для программистов" Г. Уоррена. По ссылке (другой источник, но есть в онлайне) много деталей, практически же код выглядит так: fk0(1535 знак., 12.02.2019 12:52, ссылка)
- Зря ты так. Не всем повезло как тебе быть сам себе хозяин и иметь высокомаржинальное устройство. Мне вот в массовке сказали PIC32 дешевле PIC24. И теперь приходится "говнокодить". Чтоб байт отправить в spi драйвер гармонии используется очередь, abivan(224 знак., 12.02.2019 11:03)
- Ах какой у него чудесный уарт , вот уже лет 10. - PlainUser(12.02.2019 11:49)
- По мне так очередь и мьютекс - не плохо. Как-то попробовал код I2C из MCC Microchip. Мой чип MCC не поддерживал, но код легко адаптировался. Nikolay_Po(509 знак., 12.02.2019 11:37)
- A = A & B или A = A | ~B. Здесь нет 100500 тактов, на типичном RISC процессоре это вообще делается за одну (между регистрами) или три (1 - загрузка из памяти, 2 - операция, 3 - запись в память) операции. Есть ньюансы с атомарным доступом, но они fk0(117 знак., 12.02.2019 12:13)
- Вот щаз все брошу и углублюсь в изучение поделий мелкочипа, затем перейду к штудированию свежих еррат, потом начну месяцами переписываться с ихней службой поддержки. Нет уж, наелся досыта. Одного раза хватило. - Codavr(11.02.2019 20:57)
- Это ты какой-то несвежий PIC зажевал. Я за больше чем 10 лет сделал на dsPIC/PIC24 ряд успешных и удачных проектов и ни разу не теребил саппорт - MBedder(11.02.2019 21:06)
- ПИК 18-й. Мне он приглянулся тем что имел наименьший по количеству ног корпус из всех контроллеров с CAN на борту среди всех производителей и к тому же у мелкочипа под него были примеры на SAE J1939. Я тогда приблуду для NMEA2000 мастерил. - Codavr(11.02.2019 21:13)
- Я с 8-битными PIC'ами серьезно никогда не работал - так, мелочевку всякую иногда делал. 16-битные dsPIC/PIC24 - это небо и земля по сравнению с их 8-битными - по удобству, изяществу, многообразии периферии и т.д. - MBedder(11.02.2019 21:18)
- 18-е 16/8 битные. Если склероз не врет, то это был 18F2580 - Codavr(11.02.2019 21:18 - 21:35)
- 8-битные. Это разрядность ALU, а не ширина трусов обкуренной разработчицы этого трэша - MBedder(11.02.2019 22:24)
- Ну они тогда их рекламировали именно как 16/8, типа 16 бит инструкция, 8 бит данных. причем с упором на инструкцию :) - Codavr(11.02.2019 22:27 - 22:30)
- чистые 8 бит, пох на размер инструкций. Кстати в те времена (2580) уже были at90can128 чего их не заюзали ?? - Aleksey_75(11.02.2019 22:32)
- Я же выше объяснил. - Codavr(11.02.2019 22:42)
- чистые 8 бит, пох на размер инструкций. Кстати в те времена (2580) уже были at90can128 чего их не заюзали ?? - Aleksey_75(11.02.2019 22:32)
- Ну они тогда их рекламировали именно как 16/8, типа 16 бит инструкция, 8 бит данных. причем с упором на инструкцию :) - Codavr(11.02.2019 22:27 - 22:30)
- pic18f2580/pic18f25K80 просто сказка, до сих пор пользую, нареканий ноль, кан как часики ) - Aleksey_75(11.02.2019 21:40)
- Мне нужен был режим listen only, и не допускалась потеря данных, а у них как раз про этот режим еррата. В исправлении предлагалось преинициализизировать CAN. Вот спасибочки, пока я его презапускаю теряю критически важные сообщения. Прочие косяки Codavr(397 знак., 11.02.2019 21:49 - 21:56)
- 8-битные. Это разрядность ALU, а не ширина трусов обкуренной разработчицы этого трэша - MBedder(11.02.2019 22:24)
- 18-е 16/8 битные. Если склероз не врет, то это был 18F2580 - Codavr(11.02.2019 21:18 - 21:35)
- Я с 8-битными PIC'ами серьезно никогда не работал - так, мелочевку всякую иногда делал. 16-битные dsPIC/PIC24 - это небо и земля по сравнению с их 8-битными - по удобству, изяществу, многообразии периферии и т.д. - MBedder(11.02.2019 21:18)
- ПИК 18-й. Мне он приглянулся тем что имел наименьший по количеству ног корпус из всех контроллеров с CAN на борту среди всех производителей и к тому же у мелкочипа под него были примеры на SAE J1939. Я тогда приблуду для NMEA2000 мастерил. - Codavr(11.02.2019 21:13)
- Это ты какой-то несвежий PIC зажевал. Я за больше чем 10 лет сделал на dsPIC/PIC24 ряд успешных и удачных проектов и ни разу не теребил саппорт - MBedder(11.02.2019 21:06)
- Если бы Codavr бросил свои АВР и перешёл на кортекс, ему бы и битфилды не понадобились, памяти бы и так хватало. - йцукен(11.02.2019 15:46, ссылка)
- Вопрос - а насколько компиляторы умеют эффективно это использовать? Или все на intrinsic надо писать? - Evgeny_CD(11.02.2019 21:22)
- Вот код из "уточнённого вопроса", скомпилированный ИАРом (medium optimization). Видно, что ИАР использует UBFX и BFI. йцукен(1690 знак., 11.02.2019 23:02)
- Спасибо! - Evgeny_CD(12.02.2019 01:06)
- Битовый доступ к памяти - это аппаратная фишка кортеха, которая банально мапится на адресное пространство. Работа, правда, сильно быстрее не становится, процессор все равно делает read-modify-write, хоть и непрозрачно для погромиста. lloyd(348 знак., 11.02.2019 21:29)
- Вот код из "уточнённого вопроса", скомпилированный ИАРом (medium optimization). Видно, что ИАР использует UBFX и BFI. йцукен(1690 знак., 11.02.2019 23:02)
- Ух ты, какой шустрый! А если надо упаковывать битовые структуры для экономии спутникового канала связи - тогда на что переходить? А в Inmarsat биты на вес золота в буквальном смысле. - Evgeny_CD(11.02.2019 21:12)
- Зачем мне на него переходить? Я его пользую там где он нужен (лет 5 уже), где хватает тиньки я ставлю тиньку. Ну давай щаз начнем во все приблуды вкорячивать андроид шоб "и так хватило". Не стану я гвозди забивать отбойным молотком. - Codavr(11.02.2019 20:50 - 21:07)
- Вопрос - а насколько компиляторы умеют эффективно это использовать? Или все на intrinsic надо писать? - Evgeny_CD(11.02.2019 21:22)
- Для операций с битовыми полями не нужны спец. инструкции процессора в общем случае... - fk0(11.02.2019 23:37)