Jump to content

    

msalov

Свой
  • Content Count

    502
  • Joined

  • Last visited

Everything posted by msalov


  1. Добрый день. Могу сказать, что протокол программирования един, и он реализован в моей программе. Т.е. отладчик загружает прошивку по известному протоколу, а потом делает сброс или что-то подобно для последующей отладки. А во с не есть нюансы. Спецификации протокола нет в свободном доступе, но отладка не так проста ещё и по причине использования отладочного монитора в отлаживаемом мк.для каждого чипа версия монитора отлична и поставляется в бинарном виде. Таким образом отладчик свой пока невозможно сделать.
  2. Программа пишется не для компилятора, а в первую очередь для того, кто будет её читать в будущем. Возможно и для будущего вас.
  3. Адрес 0x0F сгодится для указателя на uint8_t, но не сгодится для uint32_t. Будущему вам будет проще читать if (old_packet->ref != new_packet-<ref) нежели if (new_packet[0] != old_packet[0] || new_packet[1] != old_packet[1] || new_packet[2] != old_packet[2] || new_packet[3] != old_packet[3]) да и ошибку допустить будет сложнее в первом случае, вот и вся премудрость.
  4. Нет, разное происходит. При таком варианте у вас может быть проблема с невыровненным доступом. Идеальный вариант - объявить упакованную структуру. которая разложит байты пакета согласно логического содержания, ну а дальше оперировать полями этой структуры. __packed struct packet { ... uint32_t ref; ... }; struct packet *old_packet; struct packet *new_packet; if (old_packet->ref != new_packet->ref) { do_stuff(); } __packed зависит от вашего компилятора.
  5. Встречный вопрос: зачем? Например что бы обновлялась версия/дата сборки при каждой пересборке. Делается это так: .PHONY: FORCE FORCE: timestamp.o: FORCE %.o: %.c $(CC) ...
  6. Ну собственно любой adjustable ldo и резистор.
  7. Ядро тактируется от XT2? Если да, питание достаточное для ядра? XT2DRIVEx выставлен верно?
  8. Благодаря kuber-у "проблема" с RL78/G10 разрешилась. Начиная с версии rl78flash-v0.4 в состав входит отдельная программа rl78g10flash специально для RL78/G10.
  9. Видимо никак :( http://linux.die.net/man/1/patch Как обходной путь, можно скрипты вызывать не './foo.sh' а '$(SHELL) ./foo.sh'
  10. Написал драйвер для USB-UART преобразователя на upd78f0730, что даёт возможность наладить связь с МК на указанных платах. Возможно и на других тоже. Если кто-то попробует - просьба отписаться о результатах, как отрицательных, так и положительных. Если есть какие-либо замечания или рекомендации, так же хотелось бы их узнать. Ссылка на исходники: https://github.com/msalau/upd78f0730-driver
  11. Для этих целей есть Find First Set (ffs). Или вот ещё -> "Number of leading zeros algorithms"
  12. Такие объёмы памяти на стеке не выделяются. Если это константы - добавьте ключевое слово const, если нет - выделяйте при помощи malloc/calloc.
  13. Можно парой сдвоенных оптореле (или 4мя одиночными), например LCC110.
  14. Ошибка исправлена в версии v0.3.2 (для G12 и G13). Проблема с G10 осталась. Пока нет возможности её выловить. Как будут мк живьём, займусь вплотную.
  15. Про возможности и цену изготовления уточняйте у фабрики.
  16. Если ваша задержка меньше разрядности счётчика, то 0 обрабатывать не нужно. Но если больше - обязательно (или разбивать на части). Пример: пусть счётчик 16-битный. Начальное значение 2, а задержка - 70000 (0x11170). Если взять просто сумму получим 0x11172, из-за переполнения получим в итоге 0x1172, что даст реальную задержку 4464 вместо 70000. Если промахнуться с разрядностью переменной, с которой будет сравниваться счётчик - можно никогда не выйти из цикла ожидания.
  17. STLinux

    Раз не ставит cross-пакет, значит он уже установлен. Осталось дело за малым - узнать куда он стал. Сделайте rpm -qlp stlinux24-cross-sh4-binutils-2.19.1-41.i386.rpm | grep sh4-linux-ld С большой долей вероятности там будут строка /opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ld Значит вам надо добавить /opt/STM/STLinux-2.4/devkit/sh4/bin/ к переменной окружения PATH при запуске make.
  18. STLinux

    Эти пакеты не лежат в общем репозитарии, а есть в дистрибутиве STLinux. Ставить их надо командой yum localinstall /path/to/rpm/stlinux24-cross-sh4-binutils-2.19.1-41.i386.rpm Скачать пакеты можно отсюда ftp://ftp.stlinux.com/pub/stlinux/2.4/STLinux/sh4/ по одному Или целиком образ диска отсюда ftp://ftp.stlinux.com/pub/stlinux/2.4/iso/ Вероятно можно подключить репозитарий к yum, что б он сам разрешал зависимости: ftp://ftp.stlinux.com/pub/stlinux/2.4/ или ftp://ftp.stlinux.com/pub/stlinux/2.4/STLinux/
  19. Моё дело предложить, а ваше - отказаться. Может кому и сгодится. Только не вводите в заблуждение: это действительно называется сублицензирование и это действительно бесплатно. Пример: APPLICATION FOR SUBLICENSE TO MICROCHIP UNIVERSAL SERIALBUS VENDOR ID
  20. Если поведение программы зависит от уровня оптимизации, значит программа написана неверно. Стоит решать проблему а не следствие.
  21. Производители микросхем с USB могут бесплатно раздавать PIDы и это называется сублицензирование. Так делают TI, Microchip, Silabs и другие. У них даже есть форма запроса на сайте. Только есть некоторые ограничения по количеству выпускаемых приборов. ST надо спрашивать напрямую (тыц)
  22. В "тело" каждого экземпляра класса добавляется указатель на таблицу виртуальных функций. Сами таблицы лежат в ПЗУ.
  23. ещё #define START_ARC 0x14400UL К тому же стоит взглянуть на реализацию Flash_write32, если она принимает unsigned long* а не __data20 unsigned long*, то ваши "внешние" старания не имеют смысла - надо править библиотеку, либо ставить модель памяти Large.