-
Notifications
You must be signed in to change notification settings - Fork 17
/
README_RU
163 lines (118 loc) · 11.2 KB
/
README_RU
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
= О проекте walkgeek ===========================================================
Это walkgeek, проект по созданию переносного музыкального плеера, основанного на
компонентах отладочной платы STM32F4-Discovery, которая содержит микроконтроллер
STM32F407VGT6 и микросхему аудио кодека CS43L22. На сегодняшний момент,
поддерживается проигрывание файлов MP3 и Opus.
Цель этого проекта -- создание полнофункционального но достаточно простого
портативного плеера, оптимизированного для простой навигации среди большого
количества музыкальных файлов длиной в несколько десятков минут (подкастов).
= Аппаратная часть =============================================================
На сегодняшний день поддерживаются 2 варианта одной платформы, именуемые N1100 и
F4DISCOVERY.
--- F4DISCOVERY ----------------------------------------------------------------
Эта платформа представлена платой STM32F4-Discovery. Она предоставляет
достаточно простой способ попробовать walkgeek на реальном железе, и даже
заниматься его разработкой. В самом простом случае не требуется проводить
никаких доработок или модификаций. Требуется только прошить плату, положить на
USB флеш-накопитель несколько файлов и подключить его через переходник к разъему
USB Micro (CN5). Пользовательский интерфейс в этом случае ограничен кнопкой
"User", которая играет роль кнопки "3" плеера, и 4-мя светодиодами:
- Красный означает, что флеш-накопитель не подключен;
- Зеленый означает, что плеер запущен;
- Оранжевый означает, что плеер остановлен либо загружает текущий трек;
- Мигающий Синий означает, что плеер проигрывает текущий трек.
--- N1100 ----------------------------------------------------------------------
Также имеется более портативная версия, которая предназначена для размещения в
корпусе от сотового телефона Nokia 1100. Все материалы в формате EAGLE CAD
доступны в директории pcb/ проекта.
= Программное обеспечение ======================================================
1. Скачайте последнюю ревизию исходного кода, следуя инструкциям здесь:
here: http://code.google.com/p/walkgeek/source/checkout
2. Для сборки исходных кодов плеера, Вам потребуется:
- Git
- CMake версии 2.8.4 или выше
- ARM GNU Toolchain: CodeSourcery, Linaro, и так далее.
3. Для отладки можно использовать в качестве gdb сервера openocd, который
поддерживает много различных JTAG отладчиков, включая STLink v2, который
находится на всех платах серии Discovery от ST.
= Пример для десктопа на Linux =================================================
1. Загрузите исходный код плеера.
$ git clone
2. У CMake имеется пара проблем с embedded arm gnu тулчейнами toolchains (по
крайней мере с CodeSourcery и Linaro под Ubuntu GNU/Linux) на этапе
конфигурирования проекта. Можно попытаться исправить это следующим образом:
$ cd walkgeek
$ sudo ./patch_cmake.sh
Знак доллара означает приглашение командной строки, его вводить не нужно.
Пожалуйста, учтите, что на других ОС или версиях CMake это могут быть другие
файлы. Возможно, есть другой способ исправить эту проблему, но это решение
работает.
3. На этот момент Вы должны быть в корневой директории проекта
$ mkdir Build
$ cd Build
4. Следующий шаг заключается в вызове cmake для генерации Make-файлов. В строке
вызова Вы можете указать список параметров, где каждый элемент -- вида
-D%имя_параметра%=%значение_параметра%.
Наряду со стандартными параметрами cmake, вы также можете указать:
- TOOLCHAIN_PREFIX -- корневая директория Вашего тулчейна.
По умолчанию равно $ENV{HOME}/Local/gcc-arm-none-eabi-4_6-2012q2
- TARGET_TRIPLET -- префикс программ тулчейна, По умолчанию равно arm-none-eabi.
- STM32_USBLib_DIR -- полный путь до библиотеки STM32 USB Host Device Lib.
По умолчанию равно ${CMAKE_SOURCE_DIR}/bsp/3rd_party/STM32_USB-Host-Device_Lib_V2.1.0
- CMAKE_BUILD_TYPE -- Release (Релизная версия) or Debug (отладочная версия)
(остальные варианты -- в документации CMake). По умолчанию равно Debug.
- PLATFORM -- выбор одной из поддерживаемых аппаратных платформ: N1100,
F4DISCOVERY, SIMULATOR (см. ниже). По умолчанию равно N1100.
- PROFILING -- включить измерение потребляемого аудио кодеками процессорного
времени. 1 -- включает, 0 -- выключает. По умолчанию равно 0.
- ENABLE_TRACE -- включить вывод функций trace() через USB CDC (виртуальный
COM-порт), только для платформы N1100. По умолчанию равно 0.
- USE_MP3 -- включить поддержку MP3. По умолчанию равно 0.
- RPROG_OHM -- если текущая платформа равна N1100, этот параметр должен
содержать значение сопротивления резистора в цепи ограничения тока заряда
LTC4054. По умолчанию равно 2000.
- SD_CARD_FILE -- если текущая платформа равна SIMULATOR, здесь необходимо
указать enter полный путь файла, который содержит файловую систему плеера
(см. ниже). По умолчанию не задано.
Таким образом, если Ваш тулчейн и путь до него такие же, как в конфигурации
по умолчанию, нет необходимости их указывать. Ниже они просто приведены для
примера.
$ cmake -DTOOLCHAIN_PREFIX=/home/oleg/Local/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI \
-DUSE_MP3=1 ../ -G"Unix Makefiles"
$ make
Теперь Вы можете собрать файлы .hex, .bin или .dis (вывод дизассемблера)
$ make walkgeek.hex
Ubuntu авто-дополняет имена целей Make-файла.
6. (Необязательно) Также можно запустить сеанс отладки. Откройте одну консоль,
перейдите в корневую директорию проекта и введите
$ openocd -f openocd_luminary.cfg
Откройте другую консоль, перейдите в корневую директорию проекта и введите
$ arm-none-eabi-gdb --quiet --tui -x debug.gdb
= SIMULATOR ====================================================================
Есть также способ запустить walkgeek в качестве приложения для ПК (на
сегодняшний день, поддерживаются только POSIX-совместимые ОС, по крайней мере,
GNU/Linux). Аудио вывод пока не поддерживается. Однако работает консольный
ввод-вывод. Клавиатура плеера симулируется с помощью stdin (просто нажмите
требуемую кнопку и клавишу Enter). Если нажать несколько клавиш и Enter,
каждая из них будет последовательно обработана как нажатие. Также работает
симуляция SD карты таким образом, что модуль FAT FS в walkgeek "думает", что
перед ним реальная карта. Идея в том, что создается файл требуемого размера
(например, несколько мегабайт), создается внутри него раздел с ФС FAT (как
будто содержимое его -- это содержимое SD карты), монтируется, наполняется
содержимым (музыкальными файлами) и "скармливается" приложению walkgeek.
1. Для начала, необходимо создать файл (в этом примере будет создан файл
размером bs*count=128 MБ)
$ dd if=/dev/zero of=sd_card.bin bs=1024 count=131072
2. Создать файловую системы FAT в нем
$ /sbin/mkdosfs -F 16 sd_card.bin
3. Примонтировать
$ mkdir fatmount
$ sudo mount -t vfat -o umask=0000 -o loop sd_card.bin fatmount
,
4. Положить несколько файлов внутрь директории fatmount/.
5. Отмонтировать с целью очистки буферов записи.
$ sudo umount fatmount
6. При конфигурировании CMake (см. выше), выбрать -DPLATFORM=SIMULATOR -D%путь-до%/sd_card.bin
Использование симулятора -- удобный способ отладки высокоуровневых алгоритмов
работы плеера (например, модуль Navigator был отлажен таким образом).
Спасибо за внимание.