Да вот тоже интересно как заполнить массив данными .. Интересно, в плане допиливания тестовой проги под ATmega2560: надо объявить массив в PROGMEM для заливки скетча до упора флеш, которой там 256килов. Сам тест умещается в пару килобайт, а надо убедится что шьются все 256кб (уже имел опыт битого флеш) .. как-то руками приписывать лениво. :)
Если просто сформировать массив, который нужно залить во флешь, то проще всего написать маленькую программу (для ПК) которая сформирует исходник или его фрагмент в текстовом файле.
Да, всё верно: надо сгенерить заполнение флеша размером на 256 килобайт для заливки и последующего чтения, хотя бы силами avrdude во время заливки. Убедится что ВЕСЬ флеш пишется и читается как надо.
Ну я вот тоже пока не вижу иного способа как привлечь внешние системы для автогенерации "объемного" скетча - "написать программку для чего-либо", которая автосоздаст такой скетч.
Ещё пока мучаюсь с вариантом как проверить периферию в режиме "самотестирования" .. уж больно много ножек у этой меги. На каждую "светодиод" не повесишь.. и если UART порты ещё можно прогнать самотестированием, то вот замкнуть также I2C и SPI не очень понимаю получится ли то что хотелось..
P.S. Тест 512 килобайт памяти оказалось самой простой частью .. :)
Ну я вот тоже пока не вижу иного способа как привлечь внешние системы для автогенерации "объемного" скетча - "написать программку для чего-либо", которая автосоздаст такой скетч.
Снова на арене? Мне не хватает ЧЮ, чтобы отличить - когда ты дурачишься, а когда и правда дурак.
В режиме бутлоадера тебе доступня вся память. Бери первый бутлоадер, в каталоге atmega, он проще, чем оптибут. Добавь туда проверку хоть всей памяти перед загрузкой или вместо загрузки, можешь ошибки в сериал вывести или и2с инициализировать...Там даже вариант для 128 учтен. С учетом размера кода придется корректировать фьюзы. В одном из бутлоадеров в ИДЕ закомментирована "интерактивная" часть. можешь посмотреть на ее примере.
После установки всех тулзов в Линухе, а ты вроде умеешь им пользоваться, бутлоадер просто собирается make ИМЯ_ЦЕЛИ. Только цель свою в мейкфайле создаешь.
Я писать тебе код более не стану - опять соврешь, что у тебя была "другая задача".
=====================
более того, ты вроде уже освоился в среде Ардуино? Сможешь добавить в меню своей платы хитрый пункт для самотестирования, при это заливаться будет программа самотестирования(о которой я написал выше) в режиме бутлоадера.
Опять же, после неоднократных проявлений говнистости характера - показывать - "как такое сделать" - не стану. А то опять будет "не та задача".
Ещё пока мучаюсь с вариантом как проверить периферию в режиме "самотестирования" .. уж больно много ножек у этой меги. На каждую "светодиод" не повесишь.. и если UART порты ещё можно прогнать самотестированием, то вот замкнуть также I2C и SPI не очень понимаю получится ли то что хотелось..
В режиме бутлоадера тебе доступня вся память. Бери первый бутлоадер, в каталоге atmega, он проще, чем оптибут. Добавь туда проверку хоть всей памяти перед загрузкой или вместо загрузки, ... более того, ... Сможешь добавить в меню своей платы хитрый пункт для самотестирования, при это заливаться будет программа самотестирования(о которой я написал выше) в режиме бутлоадера.
А вот это, ценная идея - сделать хитрый пункт в Меню для тестирования плат .. и выдавать результ обратно же в монитор ИДЕ.
int arr [100] = {}; так ведь не работает?
а зачем это вообще нужно?
По стандарту языка Си числовые типы инициализируются нулями автоматически.
и такие тоже? uint8_t
чтоб не плодить темы спрошу сразу....
а как присваивать несколько значений массивву? делаю так но не работает
uint8_t tmp[32];
tmp = {0x00, 0xA4, 0x04, 0x00};
как сделать похитрее?
uint8_t tmp[32] = {0x00, 0xA4, 0x04, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xA4, 0x04, 0x00, 0x00, 0xA4, 0x04, 0x00};
это каждый раз будет создаваться массив, а хотелось бы использовать один и тот же
типо
tmp = {0xAA, 0xA4, 0x04, 0x00};
tmp = {0xАD, 0xA4, 0x04, 0x00};
tmp = {0xDD, 0xA4, 0x04, 0x00};
uint8_t tmp[4] = {0x00, 0xA4, 0x04, 0x00};
чтоб не плодить темы спрошу сразу....
а как присваивать несколько значений массивву? делаю так но не работает
uint8_t tmp[32];
tmp = {0x00, 0xA4, 0x04, 0x00};
как сделать похитрее?
придется tmp[0]=0x00; tmp[1]=0xA4; tmp[2]=0x04; tmp[3]=0x00;
как сделать похитрее?
придется tmp[0]=0x00; tmp[1]=0xA4; tmp[2]=0x04; tmp[3]=0x00;
Никогда бы не догадался что оператор присваивания умеет работать только один раз.... :)
это каждый раз будет создаваться массив, а хотелось бы использовать один и тот же
типо
tmp = {0xAA, 0xA4, 0x04, 0x00};
tmp = {0xАD, 0xA4, 0x04, 0x00};
tmp = {0xDD, 0xA4, 0x04, 0x00};
Судя по примеру достаточно менять tmp[0]. А так, в общем случае, поможет memcpy.
Да вот тоже интересно как заполнить массив данными .. Интересно, в плане допиливания тестовой проги под ATmega2560: надо объявить массив в PROGMEM для заливки скетча до упора флеш, которой там 256килов. Сам тест умещается в пару килобайт, а надо убедится что шьются все 256кб (уже имел опыт битого флеш) .. как-то руками приписывать лениво. :)
Arhat109-2, не совсем понял, что Вам нужно.
Если просто сформировать массив, который нужно залить во флешь, то проще всего написать маленькую программу (для ПК) которая сформирует исходник или его фрагмент в текстовом файле.
Проще всего сгенерить длинную последовательност, как ПСЧ генерят. Пару строк кода в цикле залупят хоть гектар оригинальными данными. Проверить ею же.
Все так, только для проверки нужны не "оригинальные" данные.
Да, всё верно: надо сгенерить заполнение флеша размером на 256 килобайт для заливки и последующего чтения, хотя бы силами avrdude во время заливки. Убедится что ВЕСЬ флеш пишется и читается как надо.
Ну я вот тоже пока не вижу иного способа как привлечь внешние системы для автогенерации "объемного" скетча - "написать программку для чего-либо", которая автосоздаст такой скетч.
Ещё пока мучаюсь с вариантом как проверить периферию в режиме "самотестирования" .. уж больно много ножек у этой меги. На каждую "светодиод" не повесишь.. и если UART порты ещё можно прогнать самотестированием, то вот замкнуть также I2C и SPI не очень понимаю получится ли то что хотелось..
P.S. Тест 512 килобайт памяти оказалось самой простой частью .. :)
Ну я вот тоже пока не вижу иного способа как привлечь внешние системы для автогенерации "объемного" скетча - "написать программку для чего-либо", которая автосоздаст такой скетч.
Снова на арене? Мне не хватает ЧЮ, чтобы отличить - когда ты дурачишься, а когда и правда дурак.
В режиме бутлоадера тебе доступня вся память. Бери первый бутлоадер, в каталоге atmega, он проще, чем оптибут. Добавь туда проверку хоть всей памяти перед загрузкой или вместо загрузки, можешь ошибки в сериал вывести или и2с инициализировать...Там даже вариант для 128 учтен. С учетом размера кода придется корректировать фьюзы. В одном из бутлоадеров в ИДЕ закомментирована "интерактивная" часть. можешь посмотреть на ее примере.
После установки всех тулзов в Линухе, а ты вроде умеешь им пользоваться, бутлоадер просто собирается make ИМЯ_ЦЕЛИ. Только цель свою в мейкфайле создаешь.
Я писать тебе код более не стану - опять соврешь, что у тебя была "другая задача".
=====================
более того, ты вроде уже освоился в среде Ардуино? Сможешь добавить в меню своей платы хитрый пункт для самотестирования, при это заливаться будет программа самотестирования(о которой я написал выше) в режиме бутлоадера.
Опять же, после неоднократных проявлений говнистости характера - показывать - "как такое сделать" - не стану. А то опять будет "не та задача".
надо сгенерить заполнение флеша размером на 256 килобайт для заливки и последующего чтения
Сделать побольше массивов типа:
Ещё пока мучаюсь с вариантом как проверить периферию в режиме "самотестирования" .. уж больно много ножек у этой меги. На каждую "светодиод" не повесишь.. и если UART порты ещё можно прогнать самотестированием, то вот замкнуть также I2C и SPI не очень понимаю получится ли то что хотелось..
Вариант с тестированием пинов из SysInfo for Arduino не подходит?
http://arduino.ru/forum/programmirovanie/sysinfo-arduino
http://arduino.ru/forum/programmirovanie/sysinfo-arduino
Посмотрю, не видел этого. Спасибки.
А вот это, ценная идея - сделать хитрый пункт в Меню для тестирования плат .. и выдавать результ обратно же в монитор ИДЕ.
Пасибки.