Прошивка Stm32F100 Через Uart
Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Как залить прошивку в контроллер. В селе нашем его только через интернет. Интерфейсов rs-232 ->uart. Прошивка Stm32f100 Через Uart. Универсальный синхронно-асинхронный приемопередатчик (USART) – один из “долгожителей” цифровой техники. В большинстве современных микроконтроллеров он является стандартным модулем и, наверное, еще долго будет применяться из-за своей простоты. В данном уроке описывается сама плата, её составляющие и способ её программирования. Данный урок должен был быть первым, но я забыл упомянуть рассмотренные.
Торрент трекер ТОРРЕНТИНО - скачайте программы multiboot usb flash drive 2011 3.0 2011 через торрент.
HyperTerminal или программа Putty. Tftp-сервер я использовал: Для Windows: версии (545 kB) Для Linux: Демон 4. Собственно сама прошивка скачанная с сайта. При скачивании прошивки обязательно обратите внимание на версию firmware прошивки которую вы качаете, она должна совпадать с указанной на корпусе маршрутизатора. Методика прошивки: Подготовка: Разбираем маршрутизатор. На плате видим разъём UART. Подключаемся к нему через переходник USB-UART.
Подключем витую пару от компьютера на вход LAN1. Запускаем HyperTerminal. На компе при этом должен быть прописан IP адрес 192.168.1.2 в HyperTerminal параметры: Bit per second:38400 Data Bits:8 Parity: none Stop Bits:1 Flow Control:None. Включаем маршрутизатор в сеть и при появлении самой первой надписи в окошке HyperTerminal: -RTL8186 at 2009.01.08- version 1.4b 16bit(180MHz) В моём случае было: UART1 output test ok Uart init mfid=000000c2 devid=00002249 Found 1 x 2M flash memory -RTL8186 at 2009.01.08- version 1.4b 16bit(180MHz) sys checksum error at 00020000!

Sys checksum error at 00020000! No sys signature at 00030000! Жмем esc на компе и видим надпись: Теперь мы в загрузчике и можем загрузить в маршрутизатор новую прошивку. Копируем файл с прошивкой fw.bin на c: trendnet ( просто создаём папку trendnet на диске С в корне, и кладём в неё файл с прошивкой fw.bin ). Нажимаем Пуск, Выполнить, cmd, OK - получаем окно командной строки windows xp, в котором вводим следующие команды: cd c: trendnet и жмём enter 5. Набираем: tftp -i 192.168.1.6 put fw.bin и жмём enter. 192.168.1.6 это не ошибка, именно такой адрес присваивает ему загрузчик микросхемы RTL8186.
На этом прошивка маршрутизатора закончена, он сам перезагрузится и к нему можно будет подключиться по адресу 192.168.10.1. В заключение приведу лог сообщений в HyperTerminal: UART1 output test ok Uart init mfid=000000c2 devid=00002249 Found 1 x 2M flash memory -RTL8186 at 2009.01.08- version 1.4b 16bit(180MHz) sys checksum error at 00020000! Sys checksum error at 00020000! No sys signature at 00030000!.TFTP Client Upload, File Name: fw.bin /.TFTP Client Upload File Size = 0017063C Bytes at 80300000 Success! Default Setting upgrade. Burn Addr =0x00008000!
SrcAddr=0x80300000 len =0x00005715. Flash Write Successed! Current Setting upgrade. Burn Addr =0x00010000! SrcAddr=0x80305715 len =0x00005715. Flash Write Successed! Linux kernel upgrade.
Stm32f100 Прошивка Через Uart
Burn Addr =0x00020000! SrcAddr=0x8030ae2a len =0x00165812. Flash Write Successed!
UART1 output test ok Uart init mfid=000000c2 devid=00002249 Found 1 x 2M flash memory -RTL8186 at 2009.01.08- version 1.4b 16bit(180MHz) Jump to image start=0x80800000. Decompressing kernel: Uncompressing Linux. Done, booting the kernel. Done decompressing kernel. Early printk enabled Determined physical RAM map: memory: 01000000 @ 00000000 (usable) Initial ramdisk at: 0x801ae000 (5017600 bytes) On node 0 totalpages: 4096 zone(0): 4096 pages. Zone(1): 0 pages. Zone(2): 0 pages.
Kernel command line: root=/dev/ram console=0 ramdiskstart=0 single Calibrating delay loop. 178.99 BogoMIPS Memory: 9316k/16384k available (1551k kernel code, 7068k reserved, 5000k data, 5 6k init, 0k highmem) Dentry-cache hash table entries: 2048 (order: 2, 16384 bytes) Inode-cache hash table entries: 1024 (order: 1, 8192 bytes) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 4096 (order: 2, 16384 bytes) checkwait. POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd Serial driver version 6.02 (2003-03-12) with no serial options enabled ttyS00 at 0x00c3 (irq = 3) is a rtluart1 state-flags=00000000 HDLC line discipline: version $Revision: 1.1 $, maxframe=4096 NHDLC line discipline registered.
Realtek GPIO Driver for Flash Reload Default block: 64 slots per queue, batch=16 RAMDISK driver initialized: 16 RAM disks of 5000K size 1024 blocksize SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256). CSLIP: code copyright 1989 Regents of the University of California. PPP generic driver version 2.4.1 PPP MPPE Compression module registered RealTek E-Flash System Driver. (C) 2002 RealTek Corp. Здравствуйте.Подскажите пожайлуйста. Роутер Билайн, TEW-432BRP/C(RU)H/W.D2.0R. Все делаю по вашей инструкции,но дальше: UART1 output test ok Uart init mfid=000000c2 devid=00002249 Found 1 x 2M flash memory -RTL8186 at 2009.01.08- version 1.4b 16bit(180MHz) sys checksum error at 00020000!
Sys checksum error at 00020000! No sys signature at 00030000!.TFTP Client Upload, File Name: fw.bin дело не идет.Правда переходник собран на pl2303.Если бы подключил не правильно,то наверно вообще не определилось ни чего.
Все не так хорошо, как кажется. Вот есть, например, приложение, в котором собственный загрузчик может позволять пользователю загружать различные прошивки (через USART). Все вроде хорошо, но если пользователь создаст прошивку, которая перехватит управление на себя и через то-же UART сможет передать весь DUMP.
В ATMege это сделано запретом чтения flash в секции boot из секции application, а в STM похоже в такой ситуации защиты не получится! Если есть какие-то варианты, то подскажите. Буду признателен! Да, наверное я непонятно выразился. Имеется коммерческий девайс, ценность которого представляет софт.
Но он находится у заказчика и должен иметь возможность обновлять прошивку удаленно. То есть прошивка отсылается заказчику и он выполняет обновление. Для этого имеется загрузчик, но который выполняет очень много функций устройства в себе (библиотека функций и является основной ценностью).
В АТМеге загрузчик и эта библиотека сидят в bootsection. Выставлены биты зашиты чтения boot из приложения. Прошивка загружаемая должна запускаться и если в прошивке перехватить управление USARTом, то можно попытаться вычитать весь дамп. АТМега не даст вычитать данные из bootsection. На АТМеге все прекрасно работает, но хотелось бы перейти на STM. То есть, в STM загрузив прошивку во флеш, она имеетвозможность вычитать весь флеш. Это не устраивает.
Может есть какие-то варианты?