-
- Блин, чота после моря несваренье мосха. Как посмотреть на
указатель, чётный от или нет? Маску накладывать не дают, модуль
брать, тожэ. - mse homjak(01.09.2024 21:22)
- Маск сам кому хочешь накладёт - Kpoк(01.09.2024 22:06)
- Но во Францыю, ни ногой! - mse homjak(01.09.2024 22:07)
- Значицца, в ассемблер ему лезть не охота. В си, очевидно, тоже.
Куды лезть? В васик? SciFi(54 знак., 01.09.2024 21:25, ссылка)
- У меня щас задача решить малой кровью. Работает только uint32_t,
выровненный. А доступ к нечотному uint16_t, со сменой типа, даст
доступ к невыровненному uint32_t, с тем-жэ траблом. - mse homjak(01.09.2024 21:31)
- В общем, тряхнул стариной, а он и говорит: mse homjak(138 знак., 01.09.2024 22:05)
- Вы испытываете терпение Кернигана и Ритчи. Первый ещё жив, а второй
может поразить молнией с небес. Кароч, бросайте всё и срочно читать
Книгу. - SciFi(01.09.2024 22:07)
- Нет! Обзывались на меня, когда я писал на АСМе? Вот теперь страдайте. Будете дразниться, я на Ц++ начну писать. mse homjak(58 знак., 01.09.2024 22:27)
- Вы испытываете терпение Кернигана и Ритчи. Первый ещё жив, а второй
может поразить молнией с небес. Кароч, бросайте всё и срочно читать
Книгу. - SciFi(01.09.2024 22:07)
- В общем, тряхнул стариной, а он и говорит: mse homjak(138 знак., 01.09.2024 22:05)
- У меня щас задача решить малой кровью. Работает только uint32_t,
выровненный. А доступ к нечотному uint16_t, со сменой типа, даст
доступ к невыровненному uint32_t, с тем-жэ траблом. - mse homjak(01.09.2024 21:31)
- Маск сам кому хочешь накладёт - Kpoк(01.09.2024 22:06)
- Предложу воспльзоваться memcpy() - Vit(25.08.2024 18:43)
- Очень неудобно делать операции. mse homjak(162 знак., 25.08.2024 18:56)
- memcpy по сути работает с байтами. и он пошлёт волатильности нафиг.
кроме того, есть вероятность, что у вас неявные проблемы из-за
strict-aliasing - Vit(25.08.2024 19:06)
- Моя шина не сможэт работать с байтами. Я специально сделал её 16-бит-only. У ФПГА, тоже, ессно. Кроме того, запись идёт без проблем. mse homjak(356 знак., 25.08.2024 20:08)
- memcpy по сути работает с байтами. и он пошлёт волатильности нафиг.
кроме того, есть вероятность, что у вас неявные проблемы из-за
strict-aliasing - Vit(25.08.2024 19:06)
- Очень неудобно делать операции. mse homjak(162 знак., 25.08.2024 18:56)
- Если буфер сделать uint32, ввести указатель на uint32, второй for
читает всё правильно. И чотные, и нечотные uint16_t, в виде
uint32_t, и чотные нечотные uint32_t. Глюк компилера? - mse homjak(24.08.2024 21:57)
- Скорее фича процессора. - IBAH(24.08.2024 22:34)
- Какая-то шина по-разному работает в режимах 8/16/32. - SciFi(24.08.2024 21:54)
- Смысл в том, что у проца шина только 8-16р. Пишет правильно. Я вижу
и в отлаччике, и на экране. А с чтением бяда. Хотя, если читать как
uint32_t, всё нормально. Не охота лезть в ассемблер risс-v, но,
походу, придёцца. - mse homjak(24.08.2024 22:00)
- В ассемблер ему лезть неохота. Как насчёт залезть осциллографом в
сигналы шины? - SciFi(24.08.2024 22:02)
- Осцыллом лез в первую очередь. Вроде, никаких проблем не было. Ну
щас ещо раз расчехлю Рыголя. - mse homjak(24.08.2024 22:08)
- Решил повременить с Рыголем и зачитал uint32_t с нечотного адреса.
Симптом аналогичен: читаются только чотные значения, что, в
общем-то и стоило ожидать. Нечотные, нулевые. Т.е. какой-то косяк
шины, получается. - mse homjak(24.08.2024 22:15)
- Правильные пацаны, когда делают шину, сначала проверяют её во всех
режимах. А не как обычно: цепи соединил, сделано, босс! :-) - SciFi(24.08.2024 22:19)
- А как её проверить во всех режимах? Пока цэпи не подсоединил,
нихрена не увидишь. По жэлезу, работает правильно. Вариант с
чтением uint16_t. mse homjak(292 знак., 24.08.2024 22:53, картинка)
- Шина же совмещённая, адрес+данные? Что за глюки на A0 после ALE?
Может, не все времянки соблюдены? - Nikolay_Po(25.08.2024 14:09)
- Да. Мультиплексированная шина A/D. Этот выброс после фронта ALE и
не мешает. - mse homjak(25.08.2024 14:30)
- В какой момент делается выборка чтения контроллером? Может, от
последнего разряда адреса немного зависит момент выборки и для
нечётных, выборка на глюк попадает? - Nikolay_Po(25.08.2024 16:55)
- Выборка происходит по фронту nRD. Но упирать на это нет смысла.
Отладчик прекрасно вычитывает ФПГА через шину. Аналогично,
обращение к uint32_t, тоже решает проблему. Т.е. или трабла
процессора, или компилятора. - mse homjak(25.08.2024 17:41)
- Забыли третий источник -- программиста. - Бapбoc(25.08.2024 20:33)
- Текст в корневом посте. Можэте критиковать. - mse homjak(25.08.2024 21:02)
- Внешняя память никак не настраивается? Ну, например, забыл включить
входной буфер на A0. И при чтении, адрес берется не установленный,
а прочитанный? Хотя тогда и нулевой бит данных бы не проходил. Nikolay_Po(90 знак., 25.08.2024 21:13)
- Адресация только словами. Шина работает, ибо это шина ТФТ контроллера. Я вижу, что происходит, просто на экране. Байтового обращения нет. Все объекты uint16_t. Нюанс только один: по нечётным адресам процэссор считывает "0х0", если доступ к uint16_t. Если адресуюсь к uint32_t то всё нормально, если данные выровнены. Если сдвинуты на 2 байта, то знакомая картина: нечётные равны "0". Хотя осцылограммы показывают корректность обмена. mse homjak(110 знак., 25.08.2024 21:31)
- Внешняя память никак не настраивается? Ну, например, забыл включить
входной буфер на A0. И при чтении, адрес берется не установленный,
а прочитанный? Хотя тогда и нулевой бит данных бы не проходил. Nikolay_Po(90 знак., 25.08.2024 21:13)
- Текст в корневом посте. Можэте критиковать. - mse homjak(25.08.2024 21:02)
- Осталось приложить ассемблер после компилятора с этого места... - Nikolay_Po(25.08.2024 20:20)
- С одной стороны, как бы, да. Но я смотрю на осциллограмму и вижу,
что с нечётных адресов считываются нечётные данные. Но можно и
ассемблер, ессно. Убрал волатильности, от них тока гемор. Круто он
оптимизировал, есличо! Попробуем добавить волатильности. mse homjak(1434 знак., 25.08.2024 21:59)
- Добавил. Ничего сверхъестественного. mse homjak(1952 знак., 25.08.2024 22:03)
- С одной стороны, как бы, да. Но я смотрю на осциллограмму и вижу,
что с нечётных адресов считываются нечётные данные. Но можно и
ассемблер, ессно. Убрал волатильности, от них тока гемор. Круто он
оптимизировал, есличо! Попробуем добавить волатильности. mse homjak(1434 знак., 25.08.2024 21:59)
- Забыли третий источник -- программиста. - Бapбoc(25.08.2024 20:33)
- Выборка происходит по фронту nRD. Но упирать на это нет смысла.
Отладчик прекрасно вычитывает ФПГА через шину. Аналогично,
обращение к uint32_t, тоже решает проблему. Т.е. или трабла
процессора, или компилятора. - mse homjak(25.08.2024 17:41)
- В какой момент делается выборка чтения контроллером? Может, от
последнего разряда адреса немного зависит момент выборки и для
нечётных, выборка на глюк попадает? - Nikolay_Po(25.08.2024 16:55)
- Да. Мультиплексированная шина A/D. Этот выброс после фронта ALE и
не мешает. - mse homjak(25.08.2024 14:30)
- Шина же совмещённая, адрес+данные? Что за глюки на A0 после ALE?
Может, не все времянки соблюдены? - Nikolay_Po(25.08.2024 14:09)
- А как её проверить во всех режимах? Пока цэпи не подсоединил,
нихрена не увидишь. По жэлезу, работает правильно. Вариант с
чтением uint16_t. mse homjak(292 знак., 24.08.2024 22:53, картинка)
- Правильные пацаны, когда делают шину, сначала проверяют её во всех
режимах. А не как обычно: цепи соединил, сделано, босс! :-) - SciFi(24.08.2024 22:19)
- Решил повременить с Рыголем и зачитал uint32_t с нечотного адреса.
Симптом аналогичен: читаются только чотные значения, что, в
общем-то и стоило ожидать. Нечотные, нулевые. Т.е. какой-то косяк
шины, получается. - mse homjak(24.08.2024 22:15)
- Осцыллом лез в первую очередь. Вроде, никаких проблем не было. Ну
щас ещо раз расчехлю Рыголя. - mse homjak(24.08.2024 22:08)
- В ассемблер ему лезть неохота. Как насчёт залезть осциллографом в
сигналы шины? - SciFi(24.08.2024 22:02)
- Смысл в том, что у проца шина только 8-16р. Пишет правильно. Я вижу
и в отлаччике, и на экране. А с чтением бяда. Хотя, если читать как
uint32_t, всё нормально. Не охота лезть в ассемблер risс-v, но,
походу, придёцца. - mse homjak(24.08.2024 22:00)
- Блин, чота после моря несваренье мосха. Как посмотреть на
указатель, чётный от или нет? Маску накладывать не дают, модуль
брать, тожэ. - mse homjak(01.09.2024 21:22)