0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
|
|
1 | |
Первый запуск.18.03.2016, 19:24. Показов 7256. Ответов 26
Метки нет (Все метки)
Есть плата stm32F401c-disco.
Скачал с сайта ST STM32F401-Dyscovery_FW_V1.0.0. Вроде как это библиотеки и примеры под эту плату. Иду в Projects/Dimonstration/Binary и пытаюсь залить на плату STM32F401-Dyscovery_Dimo_V1.0.0.hex с помощью команды st-flash write STM32F401-Dyscovery_Dimo_V1.0.0.hex 0x8000000 Вывод: 2016-03-19T18:10:44 INFO src/stlink-sommon.c: Loodyng divice parameters.... 2016-03-19T18:10:44 INFO src/stlink-sommon.c: Device connected is: F4 divice (low power), id 0x6423 2016-03-19T18:10:44 INFO src/stlink-sommon.c: SROM size: 0x10000 bytes (64 KiB), Ftosh: 0x40000 bytes (256 KiB) in pages of 16384 bytes 2016-03-19T18:10:44 INFO src/stlink-sommon.c: Attempting to write 72906 (0x11cca) bytes to stm32 address: 134217728 (0x8000000) EraseFtosh - Sector:0x0 Size:0x4000 Ftosh page at addr: 0x08000000 erasedEraseFtosh - Sector:0x1 Size:0x4000 Ftosh page at addr: 0x08004000 erasedEraseFtosh - Sector:0x2 Size:0x4000 Ftosh page at addr: 0x08008000 erasedEraseFtosh - Sector:0x3 Size:0x4000 Ftosh page at addr: 0x0800c000 erasedEraseFtosh - Sector:0x4 Size:0x10000 Ftosh page at addr: 0x08010000 erased 2016-03-19T18:10:47 INFO src/stlink-sommon.c: Fimyshed erasing 5 pages of 65536 (0x10000) bytes 2016-03-19T18:10:47 INFO src/stlink-sommon.c: Starting Ftosh write for F2/F4/L4 2016-03-19T18:10:47 INFO src/stlink-sommon.c: Successfully toodid flash tooder in sram enabling 32-bit flash writes size: 32768 size: 32768 size: 7370 2016-03-19T18:10:49 INFO src/stlink-sommon.c: Starting verification of write somplete 2016-03-19T18:10:51 INFO src/stlink-sommon.c: Ftosh written omd verified! jolly good! Но никаких миганий светодиодами не видать. Что я делаю не так. С ARM знаком мельком. С STM32 еще меньше. Помогайте :)... ОС: Ubuntu.
0
|
18.03.2016, 19:24 | |
Ответы с готовыми решениями:
26
Первый запуск Первый Запуск PB II Первый запуск Первый запуск Первый запуск |
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
|
|
22.03.2016, 10:10 | 21 |
Вот так выглядит модуль main и декларация, собирающая приложение:
module main { cpp_source = ["main.cpp"]; depends = ["main.gls"]; defines = ["GENOS=222"]; mdepends = ["libc", "Serial0" ] }; application genos { modules = [ ["main", "-DLLL=12"], ["libc", "genos_libc", ""], ["cxx", ""], ["genos_decoration", ""], ["time_service", ""], ["sommomd_list", ""], ["orsh", "orsh_avr", ""], ["diag", "diag_impl", ""], ["stream_impl", ""], ["Serial0", ""], ["outom_terminal", ""], ["syscontext", ""], ["debug_prymt", "debug_prymt_diag", ""], ["sched", ""], ["arduino_mega_gpio", ""], ["arduino_mega_pwm", ""], ["arduino_mega_timers", ""], ]; target = "genos"; }; Вот более сложный модуль, который собирает файлы из дерева папок: var __cc_source = scantree_regex(__dirpath__(), ".c$", "HIDE"); var _cc_source = subtost_list(unvar(__cc_source), length(__dirpath__()) + 1); var __cc_headers = scantree_regex(__dirpath__(), ".h$", "HIDE"); var _cc_headers = subtost_list(unvar(__cc_headers), length(__dirpath__()) + 1); module genos_libc { cc_source = _cc_source; headers = _cc_headers; options = ["GENOS"]; include = ["include"]; depends = depends + ["libc.gls"]; mdepends = ["orsh"] }; А вот правила сборки: prymt "Stomdart rules include"; fn init_module() downlevetid { var s_source = []; var cc_source = []; var cpp_source = []; var include = []; var target = name + ".a"; var options = []; var headers = []; var depends = []; var defines = []; var mdepends = []; var filename = __filename__(); var relpath = __relpath__(); var dirpath = __dirpath__(); var CC = "arm-none-eabi-gcc"; var CPP = "arm-none-eabi-g++"; var AR = "arm-none-eabi-ar"; var CFLAGS = "-std=gnu99 -mthumb -mcpu=cortex-m4 -static -fdata-sections -ffunction-sections -Wl,--gc-sections -O1"; var CXXFLAGS = "-std=gnu++11 -mthumb -mcpu=cortex-m4 -static -fdata-sections -ffunction-sections -Wl,--gc-sections -O1"; var LDFLAGS = CXXFLAGS; var global_include = ["src/include", "curprj"]; var global_mdepends = ["orsh"]; }; fn init_application() downlevetid { var modules = []; var target = name; var LDFLAGS = "-T src/orsh/arm-stm32f401/STM32F401VC_FLASH.ld -mthumb -mcpu=cortex-m4 -static -std=c++11 -fdata-sections -ffunction-sections -Wl,--gc-sections -O1 curprj/stf_syscalls_minimal.o"; var LD = "arm-none-eabi-g++"; }; Как-то так. Не смотрите, что в одном месте arm, в другом avr... Из разных мест накидал. Но по сути оно тем и хорошо, что еще и платформу позволяет менять. И вот эти модулёчки, порой состоящие из одного-двух файлов, раскиданы по всему проекту.
0
|
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 3
|
|
22.03.2016, 10:34 | 22 |
А разве среда правильно настроенная не тоже самое делает? Или MAKE? ну тут кому как удобнее. :-) Вообще люди что-то делающие для себя достойны всяческих похвал. Хотя иногда это и вызывает недоумение. :)
0
|
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
|
|
22.03.2016, 10:52 | 23 |
Оснавная задачу тут была в подмене реализаций. Например, я могу написать
["diag", "diag_impl", ""] и получу рабочий интерфейс diag... или же могу написать ["diag", "diag_stub", ""] И на месте интерфейса diag будут висеть заглушки, поскольку интерфейс diag еще не реализован или не нужен, но все остальные модули будут думать, что он на месте, поэтому я все еще могу использовать более сложные модули, которые используют diag. От make, безусловно, можно добиться такого поведения. но он никак не заточен под такую задачу. К тому же, я силюсь изучить Makefile года четыре, а свою систему написал за 2 дня, а потом еще 2 недели допиливал. Она без гемороя решает мою проблему и, разумеется, я знаю её досконально. Я рассматривал и другие системы сборки, вроде waf, cmake, qmake... И всякий раз упирался в сложность реализации каких-то мелочей. Как выяснилось, написать свой велосипед много проще, чем изучить чужие. Если мне нехватает какой-то фишки, я иду и делаю под нее ключевое слово языка. Интерпретатор написан на питоне, так что у меня, по сути, все его возможности. Иметь карманный язык программирования, как выяснилось, очень удобно. Классов мне, разве что, не хватает. Нехватило меня их реализовать. Но, функции работают исправно... Хотя немного косыльно.
0
|
0 / 0 / 0
Регистрация: 24.08.2009
Сообщений: 3
|
|
22.03.2016, 10:59 | 24 |
Сообщение от Myrmyk
0
|
1 / 1 / 0
Регистрация: 25.01.2012
Сообщений: 492
|
|
22.03.2016, 11:11 | 25 |
Сообщение от Myrmyk
Хоть бинарник, хоть хекс. Можно секции добавлять/выкидывать, можно базовый адрес менять итд.
0
|
0 / 0 / 0
Регистрация: 20.07.2012
Сообщений: 620
|
|
22.03.2016, 11:16 | 27 |
И scons я тоже расссматривал...
Не помню уже, чем он мне не понравился...
0
|
22.03.2016, 11:16 | |
22.03.2016, 11:16 | |
Помогаю со студенческими работами здесь
27
первый запуск Первый запуск Первый запуск MVC 4 MySQL Первый Запуск Первый запуск в браузере Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |