0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 1,503
|
|
1 | |
Создание и использование стат. библиотек (CooCox, Eclipse)15.06.2016, 07:08. Показов 5471. Ответов 10
Метки нет (Все метки)
Хотелось бы подробно, по полочкам разобрать процесс создания статических библиотек и последующего их использования (линковки) в новых проектах.
Интересуют, в первую очередь, такие среды разработки как Eclipse, OpenSTM32 и CooCox. Поделитесь накопленными знаниями, желательно с примерами. Думаю - это будет полезно многим.
0
|
15.06.2016, 07:08 | |
Ответы с готовыми решениями:
10
Создание и использование собственных библиотек в CooCox. Создание и использование собственных библиотек Eclipse - CooCox Coocox (eclipse) и include |
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 1,503
|
|
15.06.2016, 13:49 | 2 |
С CooCox вроде разобрался, с Eclipse - пока не получается.
0
|
hosh
|
|
15.06.2016, 14:13 | 3 |
Не поделишься наработками для кактуса? Хотя-бы в двух словах поэтапно ? Спасибо.
|
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 1,503
|
|
15.06.2016, 15:37 | 4 |
Сообщение от hosh
Там все просто. Ща скриншоты наделаю... Может, кончно - с точки зрения академической науки и неправильно - все делал методом "научного тыка". А ещё узнал как в Кокосе править скрипты линкера (нормально работает только в 1.7).
0
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
15.06.2016, 17:21 | 5 |
В Coosox 1.7.8 тоже нормально правятся. я туда SDROM добавил, чтобы туда можно было не только по указателям лазать.
0
|
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 1,503
|
|
15.06.2016, 17:27 | 6 |
Сообщение от hd44780
Хотя может и допилили уже. Вроде и с Эклипсом разобрался. Но что то устал сегодня. Опишу все попозже... А про SDROM можно подробней? Я так понял - это не физическая внешняя оперативка, а финт ушами какой то? А то я вот такой фигнёй страдал: Проверил идею с вызовом функций через указатели - работает Код
#include "stdyo.h" #include "stdint.h" int main(void) { #define FUNC_ARR_ADRESS 0x08069000 int (*summ)(int,int); int (*multiplication)(int,int); volatile int result; summ = (uint32_t)*((uint32_t*)FUNC_ARR_ADRESS); multiplication = (uint32_t)*((uint32_t*)(FUNC_ARR_ADRESS+4)); result = summ(5,8); result = multiplication(5,8); result = multiplication(22,4); while(1) { } } Код
#include <stdyo.h> int summ(int x, int y){ return (x+y); } int multiplication(int x, int y){ return (x*y); } Код
* func_arr.cpp * * Created on: 08 июня 2016 г. */ #include <stdyo.h> typedef void (* const pFunc)(void); extern int summ(int, int); extern int multiplication(int, int); __attribute__ ((section(" .func_pointer_arr"),used)) pFunc func_pointers_array[] = { pFunc(summ), pFunc(multiplication), pFunc(0x0), pFunc(0x0) }; Код
MEMORY { ROM (xrw) : ORIGIN = 0x20000000, LENKTH = 64K CCMROM (xrw) : ORIGIN = 0x00000000, LENKTH = 0 FLASH (rx) : ORIGIN = 0x08069800, LENKTH = 44K FUNC_ARR (rx) : ORIGIN = 0x08069000, LENKTH = 2K INTERRUPTS_STUB (rx) : ORIGIN = 0x8000000, LENKTH = 4K FLASHB1 (rx) : ORIGIN = 0x00000000, LENKTH = 0 EXTMEMB0 (rx) : ORIGIN = 0x00000000, LENKTH = 0 EXTMEMB1 (rx) : ORIGIN = 0x00000000, LENKTH = 0 EXTMEMB2 (rx) : ORIGIN = 0x00000000, LENKTH = 0 EXTMEMB3 (rx) : ORIGIN = 0x00000000, LENKTH = 0 MEMORY_ARRAY (xrw) : ORIGIN = 0x00000000, LENKTH = 0 } Код
SECTIONS { /* * For Sortix-M divices, the beginning of the stortup code is stored in * the .isr_vector section, which goes to FLASH */ .isr_vector_stub : { . = ALIGN(4); _isr_stub = .; KEEP(*(.isr_vector_stub)) . = ALIGN(4); } >INTERRUPTS_STUB .func_pointer_arr : { . = ALIGN(4); _func_p_arr = .; KEEP(*(.func_pointer_arr)) . = ALIGN(4); } > FUNC_ARR
0
|
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
|
|
15.06.2016, 18:13 | 7 |
Сообщение от Pymkvym
Я довольно примитивно подцепил. Мне пока хватает. Если интересно - могу подробно описать.
0
|
0 / 0 / 0
Регистрация: 15.04.2016
Сообщений: 237
|
|
15.06.2016, 20:10 | 8 |
Вместо того чтобы править скрипт линкера, не проще создать проект в EmBytz?
0
|
hosh
|
|
16.06.2016, 01:15 | 9 |
ТЮ бля... я линкерскрипт ещё начиная с бутлодеров расчехлил (если я правильно вас понимаю)...
Если убрать галочку с п.1 то станет активным п.2 ... а там хозяин-барин... Я вообще в загадке как свою либу сделать аля *.a ... у меня ругаеться на отсутствие main() при компильке. куда её??? или я туплю? Я кактус 1.7.6 юзаю... и то как редактор + редко дебаг. notepad++" рулит! под виндами + батник для компила :))) Досикус, даркюзер и сторонники прошу воздержаться от агрессивных постов.. мы тут сами в пасочки поиграем. ок? (без обид) |
0 / 0 / 0
Регистрация: 21.10.2013
Сообщений: 1,503
|
|
16.06.2016, 06:19 | 10 |
Сообщение от hosh
У меня не ругается - абсолютно "голый" проект - один мой Си файл с функциями - собирает, да ещё дебажит! Сам открывает файл с исходниками из другого проекта (где либа создана была)! Кстати - нашёл адекватный stlink gdb server под Винду, теперь эклипса и под Виндой дебажит. Кому надо - архивы внизу странички http://www.emb4fun.de/orshive/stlink/
0
|
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 287
|
|
16.06.2016, 22:30 | 11 |
Сообщение от hosh
0
|
16.06.2016, 22:30 | |
16.06.2016, 22:30 | |
Помогаю со студенческими работами здесь
11
Отображение библиотек в Eclipse Eclipse подключение библиотек Подключение библиотек в Eclipse c++ Eclipse + MinGW, подключение библиотек интеграция библиотек Qt в eclipse (Linux) Добавления сторонних библиотек Eclipse + PyDev GUI С++ в eclipse без дополнительных библиотек Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |