Search
Write a publication
Pull to refresh
3
0
Roman Solovyov @Ramzess_II

Embedded разработчик

Send message

Немного не понял про обманку. Как она будет работать если все равно не совпадает Id чипа который был и чипа обманки...

спасибо, учту.

интересно какие решения используют в промышленных устройствах? Или это уже сугубо коммерческие решения?

понял. спасибо

просто обычно в обучающих уроках/видео не упоминают такого. Там просто рассказано как передать или принять или еще какие ни будь простые операции. А вот как делать что то серьезное мало кто пишет..

шикарная идея, спасибо)

DMA просто привел как аналогию..

что именно вы имеете ввиду? можно вкратце?

Подскажите, а есть способ проверять связь через роутер?

сейчас тоже столкнулся с этой проблемой.

Подскажите где можно посмотреть весь список элементов доступных после android:

может сайт какой то, или еще что то

так что скажите? есть у вас идеи по этому поводу?

вообщем у меня полное разочарование. я хотел создать два массива, один в оперативке, а второй в памяти програм но на границе 0x1FFFF, чтоб посмотреть что будет переписываться во второй массив во время перехода. и что я вижу. конструкция типа:

for (int x = 0; x < 399; x ++){ for (int y = 0; y < 19; y ++){ perehodreal[x][y] = pgm_read_dword_near(&(array2d[x][y])); } }

работает без проблем. а вот если мы используем дальний адрес то вываливается ошибка и ничего не компилируется.

for (int x = 0; x < 399; x ++){ for (int y = 0; y < 19; y ++){ perehodreal[x][y] = pgm_read_dword_far(pgm_get_far_address(perehod[x][y])); } }

единственный вариант что я вижу это втупую прибавлять к адрессу 4 и считывать это значение в свой массив. но как мне кажется это максимально тупо

перечитав коммент понял что ошибся: prog flash имеет адреса 0x000000 - 0x3FFFF

и еще вы не упомянули такой фактор как переход к нулевому адресу без инкрементирования смещения. допустим если было 0x1FFFF и мы добавили один то станет 0x10000. не знаю еще как это прогнать в железе чтоб проверить. но в коментариях на многих англоязычных сайтах пишут что так и есть

вы уж извините, но что то я не могу понять кто тупит. у авр ведь разделенное адресное пространство. а то что вы пишете что-то не соответствует реальности:

"под код (ПЗУ, flash) отводятся адреса с 0 по 0x007fffff, а под данные (ОЗУ, SRAM) — с 0x00800100 по 0x0080ffff. "

я в отладке смотрю адресацию на атмега2560 и вижу там следующее.

data registers имеет адреса 0x0000 - 0x21FF

prog flash имеет адреса 0x000000 - 0x7FFF

я потратил вечер на то чтоб понять что к чему..

и у меня в атмел студио без проблем работает следующая конструкция:

pgm_read_dword_far( pgm_get_far_address(hz))

0 по 0x007fffff

подскажите о каком контролере идет речь? где такие большие адреса присутствуют?

Из таких модулей любой школьник сможет собрать. попробуйте сделать все с нуля, вот тогда будет респект и уважение…
на ютубе тоже часто пользуются такой штукой. а потом прилетает бан на видео
откройте даташит на контролер, к примеру атмега328, там 400 страниц текста, и все они важны. так что думаю как бы там не структуризировать информацию, не поможет
казалось бы обновить страницу 10 сек, но это бесит страшно!
как по мне это худшее решение. Взял все готовое вплоть до кода, и считаешь себя супер-пупер разработчиком, а на деле 0…
1

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity