реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> STM32-F4, Отладка из Eclipse
_Артём_
сообщение Feb 18 2012, 20:15
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Ещё момент. Не существенный, но всё ж.

Прикрепленное изображение

Как папку SamplesCommon подключить к проекту правильно, а то некоторые файлы не видны?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 18 2012, 20:52
Сообщение #32


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(_Артём_ @ Feb 19 2012, 00:34) *
А почему а вас не используются файлы core_cmx.c?

Да просто не используются. Для примеров не нужны функции, которые там есть.
Цитата(_Артём_ @ Feb 19 2012, 02:15) *
Как папку SamplesCommon подключить к проекту правильно, а то некоторые файлы не видны?

Вообще-то там должно быть всё подключено. Обновите просто. (И у вас опять пустые папки scmRTOS)
А вручную это делается так:
ПКМ на проекте - New-Folder - кнопка Advanced - Link to alternate location (Linked Folder) - Browse - выбираете папку - Finish.
Это у нас получится папка с абсолютным путём. Чтобы сменить на относительный, надо ПКМ на папке, Properties - Resource - Location - Edit. И там исправить путь на относительный (../SamplesCommon).


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 18 2012, 20:58
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Заменил в makefile
Цитата
# Select family
# STM32F10X_LD : STM32 Low density devices
# STM32F10X_LD_VL : STM32 Low density Value Line devices
# STM32F10X_MD : STM32 Medium density devices
# STM32F10X_MD_VL : STM32 Medium density Value Line devices
# STM32F10X_HD : STM32 High density devices
# STM32F10X_HD_VL : STM32 XL-density devices
# STM32F10X_CL : STM32 Connectivity line devices
# STM32F10X_XL : STM32 XL-density devices
CHIP = STM32F10X_MD

на
Цитата
# CHIP = LPC1114_2xx
CHIP = LPC1114_3xx

Пока так...

Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 18 2012, 22:05
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Вродь все подменил, но
Цитата
--- building 1-EventFlag
--- compiling ./src/main.cpp...
In file included from ./src/main.cpp:49:0:
../scmRTOS/Common/scmRTOS.h:54:23: fatal error: OS_Target.h: No such file or directory
compilation terminated.
make: *** [obj/main.o] Ошибка 1


Что предполагалось в файле hardware.h?

Update.
Попробовал собрать с++-проект без scmrtos (такая же ошибка у меня появлялась вчера. вроде):
Цитата
In file included from ./src/main.cpp:2:0:
../nxp_cm0_lpc11/cmsis/LPC11xx.h:287:5: warning: ISO C++ prohibits anonymous structs [-pedantic]
--- linking...
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.6.0/../../../../arm-none-eabi/bin/ld.exe:./prj/LPC1114_2xx.ld:5: syntax error
collect2: ld returned 1 exit status
make: *** [exe/cpp_test.elf] Ошибка 1


Что-то не так с LPC1114_2xx.ld?
Прикрепленный файл  lpc11xx_proj.rar ( 208.96 килобайт ) Кол-во скачиваний: 86

Прикрепленный файл  v400_cm0_nxp.rar ( 101 килобайт ) Кол-во скачиваний: 78

Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 18 2012, 23:55
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(AHTOXA @ Feb 18 2012, 22:52) *
Да просто не используются. Для примеров не нужны функции, которые там есть.

Ясно.

Цитата(AHTOXA @ Feb 18 2012, 22:52) *
Вообще-то там должно быть всё подключено. Обновите просто. (И у вас опять пустые папки scmRTOS)

Может что-то попортил на ночь глядя.

Цитата(AHTOXA @ Feb 18 2012, 22:52) *
(И у вас опять пустые папки scmRTOS)

Это просто рисунок тот же.

Цитата(AHTOXA @ Feb 18 2012, 22:52) *
А вручную это делается так:
ПКМ на проекте - New-Folder - кнопка Advanced - Link to alternate location (Linked Folder) - Browse - выбираете папку - Finish.
Это у нас получится папка с абсолютным путём. Чтобы сменить на относительный, надо ПКМ на папке, Properties - Resource - Location - Edit. И там исправить путь на относительный (../SamplesCommon).

Спасибо.

P.S. Попробовал открыть остальные примеры:
Цитата
Description Resource Path Location Type
cannot open linker script file ./prj/STM32F10X_MD_VL.ld: No such file or directory 4-Debug C/C++ Problem
cannot open linker script file ./prj/STM32F10X_MD.ld: No such file or directory 2-Message C/C++ Problem
cannot open linker script file ./prj/STM32F10X_MD.ld: No such file or directory 3-Channel C/C++ Problem

Понял: спать пора.

Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 19 2012, 06:13
Сообщение #36


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(_Артём_ @ Feb 19 2012, 04:05) *
Вродь все подменил, но
Цитата
../scmRTOS/Common/scmRTOS.h:54:23: fatal error: OS_Target.h: No such file or directory

Похоже, что не заменили в makefile "CortexM3" на "Cortex-M0".
Цитата(_Артём_ @ Feb 19 2012, 04:05) *
Цитата
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.6.0/../../../../arm-none-eabi/bin/ld.exe:./prj/LPC1114_2xx.ld:5: syntax error

Что-то не так с LPC1114_2xx.ld?

Хм. Странно... Попробуйте изменить комментарий в строке 5 с // на /* */

Цитата(_Артём_ @ Feb 19 2012, 05:55) *
P.S. Попробовал открыть остальные примеры:
Цитата
cannot open linker script file ./prj/STM32F10X_MD_VL.ld: No such file or directory 4-Debug C/C++ Problem

Надо скопировать содержимое папки prj из первого примера в остальные.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 19 2012, 15:32
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(AHTOXA @ Feb 19 2012, 08:13) *
Похоже, что не заменили в makefile "CortexM3" на "Cortex-M0".

Типа того:
Цитата
DIRS += $(SCMDIR)/Common $(SCMDIR)/CortexM0


Цитата(AHTOXA @ Feb 19 2012, 08:13) *
Что-то не так с LPC1114_2xx.ld?
Хм. Странно... Попробуйте изменить комментарий в строке 5 с // на /* */

Могит быть. Заменил, помогло, но:
Цитата
c:/yagarto/bin/../lib/gcc/arm-none-eabi/4.6.0/../../../../arm-none-eabi/bin/ld.exe:./prj/LPC1114_2xx.ld:87: syntax error



Цитата(AHTOXA @ Feb 19 2012, 08:13) *
Надо скопировать содержимое папки prj из первого примера в остальные.

Я пребывал в уверенности, что они туда уже положены.

Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 19 2012, 19:07
Сообщение #38


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(_Артём_ @ Feb 19 2012, 21:32) *
Типа того:
Цитата
DIRS += $(SCMDIR)/Common $(SCMDIR)/CortexM0

Да, только не "CortexM0", а "Cortex-M0".
Цитата
Могит быть. Заменил, помогло, но:

Теперь в строке 87 - там скобка лишняя.
Цитата
Я пребывал в уверенности, что они туда уже положены.

Если для получения примеров воспользоваться svn, то потом при помощи приложеннго батника всё делается сразу - и ось распихивается по папкам, и содержимое папки prj копируется из первого проекта в остальные. Но вам всё равно придётся заменять это содержимое под свой процессор.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 19 2012, 20:42
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(AHTOXA @ Feb 19 2012, 21:07) *
Да, только не "CortexM0", а "Cortex-M0".

Почему с "-", папка ведь называется CortexM0?
Или так решено для cortex папки называть?


Цитата(AHTOXA @ Feb 19 2012, 21:07) *
Теперь в строке 87 - там скобка лишняя.


Такая же скобка на стр. 90(это смайлик наверное?, только линкер юмора не понял):
Цитата
PROVIDE ( _estack = .) );


Ещё выдало:
Цитата
./prj/LPC1114_3xx.ld:147: undefined symbol `_bstack' referenced in expression


Цитата(AHTOXA @ Feb 19 2012, 21:07) *
Если для получения примеров воспользоваться svn, то потом при помощи приложеннго батника всё делается сразу - и ось распихивается по папкам, и содержимое папки prj копируется из первого проекта в остальные.

Удобно. Работает сразу или нужно что-то ставить (WinXP)?



Go to the top of the page
 
+Quote Post
ReAl
сообщение Feb 19 2012, 22:34
Сообщение #40


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Ничего кроме svn (subversion)


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 19 2012, 22:57
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Идём дальше.
Заменил в makefile:
Цитата
LD_SCRIPT = $(PRJDIR)/STM32F10X_MD_VL.ld

и в STM32F10X_MD_VL.ld
Цитата
RAM (xrw) : ORIGIN = 0x10000000, LENGTH = 4K
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 32K

Запустил build:
Цитата
../SamplesCommon/lpc11xx.h:464:6: warning: ISO C99 doesn't support unnamed structs/unions [-pedantic]
.....
text data bss dec hex filename
1432 0 1672 3104 c20 ./exe/1-EventFlag.elf
Errors: none

Зашил: похоже что как-то работает.

Но появились ещё вопросы.
1) Не работает Systick: наверное потому что закоментил строки в sysinit.cpp:
Код
    LPC_SYSCON->SYSPLLCTRL = 0
            //| ( (PLL_MUL - 1) << LPC_MSEL)
            //| ( PLL_DIV << LPC_PSEL)
          ;

Чему равны PLL_DIV и PLL_MUL?

2) Где нынче считается правильным настраивать прерывание OS::SystemTimer_ISR?
В какой-то древней версии scmRTOS_vxx.ru.pdf вроде видел функцию для инициализации таймера, потом она пропала (в v3.10 AVR не нашёл).

3) Мелочь но всё ж: ld.exe выдавал ошибку на //. Это у меня версия устаревшая?

4) Что делать с
Цитата
warning: ISO C99 doesn't support unnamed structs/unions [-pedantic]

Где-то обсуждалось вроде, но чтот не нашёл.

5) Существует ли программа какая-нибудь для редактирования ld-файлов? Или всё вручную принято делать?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 20 2012, 03:38
Сообщение #42


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(_Артём_ @ Feb 20 2012, 02:42) *
Почему с "-", папка ведь называется CortexM0?
Или так решено для cortex папки называть?

В самом порте (pre-v400\Samples\Cortex-M0\GCC\scmRTOS\) папка называется Cortex-M0. Поэтому и в примерах, когда они появятся, она будет называться так же. Так что лучше переименуйте, чтоб потом не путаться.
Цитата(_Артём_ @ Feb 20 2012, 04:57) *
Зашил: похоже что как-то работает.

Отличноsm.gif
Цитата
1) Не работает Systick: наверное потому что закоментил строки в sysinit.cpp:
Код
    LPC_SYSCON->SYSPLLCTRL = 0
            //| ( (PLL_MUL - 1) << LPC_MSEL)
            //| ( PLL_DIV << LPC_PSEL)
         ;

Чему равны PLL_DIV и PLL_MUL?

Думаю, что это надо смотреть в документации на контроллер.
Цитата
2) Где нынче считается правильным настраивать прерывание OS::SystemTimer_ISR?

В OS_Target_asm.S. Частота зависит от двух дефайнов: SYSTICKFREQ и SYSTICKINTRATE, которые задаются на уровне проекта в файле scmRTOS_TARGET_CFG.h.
Цитата
3) Мелочь но всё ж: ld.exe выдавал ошибку на //. Это у меня версия устаревшая?

Возможно.

Цитата
4) Что делать с
Цитата
warning: ISO C99 doesn't support unnamed structs/unions [-pedantic]

Тут ничего не поделать. Только убрать ключ -pedantic в makefile.
Цитата
5) Существует ли программа какая-нибудь для редактирования ld-файлов? Или всё вручную принято делать?

Не встречал такой.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 20 2012, 08:20
Сообщение #43


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Не пинайте ногами. Был проект, в него подошел LPC1114. Под этот проект писался и на нем отлаживался порт scmRTOS для Cortex-M0. Потом из этого проекта были выдраны файлы, непосредственно относящиеся к scmRTOS и положены в репозиторий с целью довести их до полноценного порта позже. Перед помещением в реп были сделаны мелкие правки - выкусывание того, что не имеет отношения к ОС. После правок эти огрызки, естественно, не проверялись компиляцией.

QUOTE
PLL_DIV и PLL_MUL?

У меня описано так:
CODE
#ifndef HARDWARE_H__
#define HARDWARE_H__
#include    <pin_macros.h>

#define IRC_FREQ            12000000ULL

#define PLL_MUL             4
#define PLL_DIV             2

#define MAIN_CLK_FREQ       (IRC_FREQ * PLL_MUL)

#define SYS_CLK_DIV         1
#define SYS_CLK_FREQ        (MAIN_CLK_FREQ / SYS_CLK_DIV)

#define SYSTICK_CLK_FREQ    (SYS_CLK_FREQ / 2)

#define UART_PCLK_FREQ      (SYS_CLK_FREQ)

#define BAUDRATE            115200

#define LED             0,4,H

#endif  // HARDWARE_H__



QUOTE (_Артём_ @ Feb 20 2012, 00:57) *
2) Где нынче считается правильным настраивать прерывание OS::SystemTimer_ISR?
Однозначного решения нет. В порте CM3 он настраивается в os_start(). Я решил настраивать его в main(), дабы не подключать в исходники ОСи описание регистров и чтобы не подключать туда каким-то образом #define с частотами.
CODE
int main()
{
    // setup SysTick timer
    SysTick->LOAD = SYSTICK_CLK_FREQ / RTOS_TICK_RATE - 1;
    SysTick->VAL = 0;   // reset counter
    SysTick->CTRL = 0
            | (1 << SysTick_CTRL_ENABLE_Pos)    // Enable timer
            | (1 << SysTick_CTRL_TICKINT_Pos)   // Enable SysTick interrupts
            | (0 << SysTick_CTRL_CLKSOURCE_Pos) // System clock/2
         ;

    // run
    OS::run();
}


QUOTE (_Артём_ @ Feb 20 2012, 00:57) *
3) Мелочь но всё ж: ld.exe выдавал ошибку на //. Это у меня версия устаревшая?
Нет, это я правил файл после "выкусывания" из проекта и по привычке использовал Цеплюсплюсный однострочный комментарий.

QUOTE (_Артём_ @ Feb 19 2012, 22:42) *
Такая же скобка на стр. 90(это смайлик наверное?, только линкер юмора не понял):
"Сама себе порой я удивляюсь". Откуда там эти строки - загадка. Исправил в репозитории и проверил - больше линкер не ругается.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Feb 20 2012, 22:05
Сообщение #44


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Добавил в main.cpp настройку SysTick, слинковал скриптом из репозитория (LPC1114_2xx.ld), запустил: полёт нормальный.

Спасибо всем за помощь.
Ушёл осваивать.
Go to the top of the page
 
+Quote Post
sherr
сообщение Mar 31 2012, 19:01
Сообщение #45


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 10-06-06
Из: Ставрополь
Пользователь №: 17 955



У кого-нибудь есть скрипт для заливки flash в STM32f4xx для OpenOCD + ST-Link ? А то собрал OpenOCD 0.6.0, проверил -
openocd -f interface/stlink-v2.cfg -f target/stm32f4x_stlink.cfg вроде запускается, полдня
читал мануал OpenOCD //// в общем мне бы пример для начала ...
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 15:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01543 секунд с 7
ELECTRONIX ©2004-2016