- Как со стационарного ПК получить доступ к данным пользователя с
ноутбучного диска ? Есть ноутбук с пользователем "ААА": HDD 2.5'
ST1000LM014, который, КМК, доживает последние часы. Удалось сделать
его полную копию (full disk copy в Acronis True Image). Но при
открытии что копии, что самого диска с другого ПК в папку
"Пользователи" (users) доступа нет. - De_user(26.07.2020 08:08, dao, полностью)
- [Arduino на Intel MAX10] AVR как софткор, научились делать до 32 МГц. Evgeny_CD(409 знак., 14.04.2020 19:05 - 19:13, pld, ссылка, ссылка, полностью)
- Зато у Вас есть мощный единомышленник - В.Солоухин, "Последняя
ступень". - BB(22.07.2020 13:51 - 25.07.2020 12:44, Off, полностью)Cкpипaч
- В Keil v5 наткнулся на грабли: Какого-то хрена компилятор вызывает
не ту функцию, что требуется (похоже втуливает что то с
выравниванием 4). В результате hard fault... Как лечить? Гyдвин(616 знак., 23.07.2020 15:52, ARM, полностью)
- Короче... Особо буйные могут успокоиться, хлебнуть галоперидольчику
и скинуть смирительную рубаху. Бага нет! "Нестандартный язык" от
ARM все предусмотрел еще в 4 версии. Просто для v5 похоже сменились
"умолчания" для ключа компилятора "--pointer_alignment=xxx". Ну или
можно описать структуру вот так: Гyдвин(3109 знак., 25.07.2020 20:08)
- У вас на плате никаких передатчиков нету? С GSM модемом на борту и
процем STM32L151 тоже на hard fault нарвались, и плата в 4 слоя
была хорошо экранирована внутренними слоями, пока антенну на 90
градусов не развернул, hard fault не проходил. Программисты в шоке. - Visitor(25.07.2020 16:32)
- Короче, все печально. Поспрашивал коллегу, который занимается
частью проекта, в котором остались упакованные структуры. В IAR
точно также. Это не ошибка. Это сознательная диверсия. Некуда
ехать, приехали. - VLLV(24.07.2020 12:44)
- Функция memcpy не должна требовать выравнивания. Не морочь мозги,
покажи исходник на C. - fk0(23.07.2020 17:20)
- Хм... Дело обстоит еще интереснее - если прошагать отладчиком в
окне дизассемблера, эта __aeabi_memcpy4() отрабатывает без
hardfault. LPC1768 есличо... - Гyдвин(23.07.2020 16:03)
- IH.conag и buffer имеют тип char? - BlackMorda(23.07.2020 16:06)
- ВОТ!!! Гyдвин(1055 знак., 23.07.2020 19:10)
- Лично я не догоняю смысл одновременного использования #pragma
pack(1) и __align(4) применительно к struct {} Zoro(615 знак., 25.07.2020 16:19)
- ВОТ: SciFi(352 знак., 24.07.2020 10:28, ссылка)
- Aioeeeaaoiioaaie ieeooaaiieeo iaaiie! fk0(2534 знак., 23.07.2020 21:52, ссылка)
- в man memcpy написано что она принимает аргументы типа void* 3m(875 знак., 24.07.2020 08:41)
- А теперь представь, что "проверка адреса" выехала в compile time
(чтоб как раз не тратить на неё время, о чём ты пишешь) и всё
становится логично. Адреса в момент компиляции может и неизвестны,
но их атрибуты (выравнивание) берутся из типов и известны. - fk0(24.07.2020 11:32)
- C " ВСЕГДА" не согласен (от того и пострадамши :) Выравниваю для
контроллеров, в которых это требуется - для того же MSP430. Для
ARM7TDMI тоже бы учел. Но тут, млять, Cortex M3, аффтары которого с
момента появления били себя пяткой в грудь, что поддерживается
побайтный доступ, и x86 c Паскалем на другом конце. И до каких то
пор это было без извратов - есть стандарт для memcpy() и приведения
указателей. В том же Keil v5, если использовать библиотеку
"microLIB", все пучком - Гyдвин(27 знак., 24.07.2020 09:01)
- Это особенность ARM-архитектуры. При чтении/записи 32х-разрядного
числа игнорируются младшие два бита адреса. Архитектура x86 без
проблем может читать/писать по любому адресу. - Ale3000(24.07.2020 08:35)
- Все-таки остается одна неясность: il-2(361 знак., 24.07.2020 08:00 - 08:05)
- Речи правильные толкаешь :) Но компилятор, которому явно привели
тип указателя, но он "вызывает оптимизированную функцию которая
быстро копирует 32-битными словами" не имеет права на жизнь ;) - Гyдвин(23.07.2020 22:13)
- Почему "явное приведение типа указателя" считается каким-то
значимым аргументом? Всё равно перед вызовом memcpy эти указатели
неявно приведутся к void*. С тем же успехом можно в спортлото
написать. - SciFi(24.07.2020 09:57)
- gcc "чудный и замечательный" компилятор Zoro(183 знак., 24.07.2020 00:39)
- Проблема в том, что у тебя в программе _нет_ такого типа (U32, но
только "упакованный"). Если его руками создать, как в примере по
ссылке (внутри IY) -- то оно даже будет как надо работать.
Упакованные структуры это очень неполноценное и нестандартная
надстройка над C/C++. Не продуманная. Костыль. Её неспроста нет в
стандарте. Она "недоделанная" и не совсместима с моделью памяти и
системой типов C/C++. Стандартными (для C++, не для C) средствами
можно изголиться и сделать fk0(552 знак., 23.07.2020 22:28)
- Нет уж... Тысячи строк кода, драйверы, куски стороннего кода (та же
FatFs) и пр. как то не способствуют выворачиванию всего наизнанку.
А по этому топику: Cortex M3 (LPC17) имеет аппаратную побайтную
адресацию, посему фтопку компилер, взомнивший себя шибко
грамотным... Более ранняя версия работала "как в мудрых книгах
написано" - привели указатель к void* или char*, вызывается
предсказуемая библиотечная функция побайтного копирования (и все
остальные из string.h). И Гyдвин(118 знак., 23.07.2020 23:39)
- Говнокода. И не такие уж и тысячи. Практически всё что завелось не
на x86 такого говнокода не содержит. Потому, что и MIPS, и ARM --
это аппаратное исключение при невыравненном обращении и дальше либо
фиксация ошибки, либо программная эмуляция команды с невыравненным
чтением-записью (очень не быстро...) И даже на современном x86
словить исключение при невыравненном обращении -- запросто
(векторные инструкции). Ещё раз, повторю, упакованные структуры --
НЕ СТАНДАРТНАЯ ХЕРНЯ. fk0(3121 знак., 24.07.2020 01:19, ссылка)
- Все же тут похоже на глюк компилятора. PACKED это такой же
модификатор структуры как volatile или const которые должны
распространяться на все члены структуры. Соответственно, когда
делается &a.b на выходе должен получаться указатель с
соответствующим модификатором. А тут модификатор PACKED потерялся,
остальное последствия. Но я не большой знаток. - AlexBi(24.07.2020 09:53)
- А какой тип будут иметь по-твоему тогда члены структуры? Если в
структуры положить структуры и их тоже сделать packed -- получится.
А если в структуре уже лежит обычный int? Явно ж записано, что
такое-то поле -- int и с ним могут что-то делать и нельзя неявно
подменить тип -- работать перестанет (программист может начать
где-то сравнивать типы, например). Сама идея упакованных структур
-- не продуманная, в ней есть логические противоречия. - fk0(24.07.2020 11:46)
- В данном случае члены структуры должны становиться packed. А как,
по-твоему, работает (должно работать) volatile структура? Будут ее
члены каждый раз перечитываться? Указатель на члена структуры будет
volatile? AlexBi(405 знак., 24.07.2020 13:50)
- С чего ты решил, что они кому-то что-то должны? Где это написано?
Тип поля, если это не вновь определяемая на месте структура, уже
определён ранее и измениться никак не может (иначе это другой,
новый тип должен быть). А выравнивание и размер -- это атрибуты,
свойства, типа. Поэтому если ты в упакованную структуру положишь
ранее определённый тип, то он сохранит свои свойства. Структура
останется с "дырками" для выравнивания, обычный int сохранится с
alignas(4). Что мы и fk0(263 знак., 24.07.2020 14:34, ссылка)
- В студии не хватает кода. Там запросто может быть два определения
структуры -- с packed и без. - SciFi(24.07.2020 09:59)
- Вот суть: Гyдвин(1541 знак., 24.07.2020 10:24)
- тут знаю одно - атрибуты packed и volatile при пропускании через
формальные параметры функции завсегда теряются, но по ходу успевают
цепляться яйцами:) Vit(147 знак., 23.07.2020 22:12)
- Да и ты сделал #pragma pack, но нихера не вернул обратно (через
pragma push/pop -- смотри у меня пример по ссылке). В итоге у тебя
вся программа "упакованная" и глючная. Хуже того, в зависимости от
порядка включения хедеров одни и те же структуры в разных модулях
могли оказаться упакованные или нет. Кровь, кешки, фарш! - fk0(23.07.2020 21:55)
- Нужно весь тип структуры смотреть - пакед, не пакед, что впереди,
размерность. - VLLV(23.07.2020 16:29)
- В какую сторону должен вращаться этот вентилятор, чтобы эффективно
засасывать воздух изнутри и выбрасывать наружу? Yurasvs(1 знак., 25.07.2020 13:18, Off, картинка, полностью)
- Встраиваемые модули Ethernet->serial Moxa MiiNePortE2, как
управлять GPIO? Пробовал через веб-интерфейс - меняю состояние,
никак не реагирует. По самой работе вопросов нет, а с GPIO не
получается - AVF(25.07.2020 11:00, Cyber)
- Трансформатор тока как датчик наличия тока. Cкpипaч(382 знак., 18.07.2020 15:00, Cyber, ссылка, полностью)
- есть утилита для jlink, которая сохраняет принятые данные SWO в
файл? - Constantin24(21.07.2020 20:26, ARM, полностью)
- Громадье планов Роскосмоса уже пугает. То что это все останется на
бумаге сомнений не вызывает, за ресурсы можно не волноваться,
интересно другое - бюджет то сдюжит такие аппетиты. Ангара-5,
Енисей, Орел, Союз-2, Союз-5, Федерация, лунный транспортник,
лунная база. И все это за 10 лет. Теперь еще и это... - Codavr(21.07.2020 08:54, Off, ссылка, полностью)
- Не подскажет ли кто по USB ? Устройство получило адрес 2. Но иногда
на шине видны пакеты OUT на адрес 3..!!! (точка 2) Всегда
одинаковые, 31 байт: U,S,B,C,0xb0,0x3b,0x99,0x87. Все остальные 0,
кроме 15-го (==6). Что это ? - Юpий_CB(24.07.2020 18:01, MCU, полностью)
- По поводу грабель компиляторов: il-2(453 знак., 24.07.2020 14:56, ARM, полностью)
- И тут же в пансионатах куча свободных мест...потому что советские
номера по таким ценам нах никому не сдались... и сидят как соьаки
на сене местные...ждут золотую рыбку лоха, которых все меньше... - sav6622(21.07.2020 11:46 - 22.07.2020 11:35, Off, полностью)fk0
- Чей ГАЗ? BlackMorda(247 знак., 24.07.2020 10:41, Off, ссылка, полностью)
- [!!! NVidia может купить ARM] - Evgeny_CD(23.07.2020 14:55 - 24.07.2020 00:46, dao, ссылка, полностью)
- это все, что вам нужно знать об опыте, как о философской категории LordN(35 знак., 23.07.2020 06:21, Off, ссылка, полностью)