GenaSPB 11 3 марта, 2017 Опубликовано 3 марта, 2017 · Жалоба страшен стартап? Вот, к примеру, мой стек забыли Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 3 марта, 2017 Опубликовано 3 марта, 2017 · Жалоба стек забыли SECTIONS { .text : { __vtab_start__ = .; LONG(__StackTop) LONG(Reset_Handler | 1) KEEP(*(.vectab)) *(.text*) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 3 марта, 2017 Опубликовано 3 марта, 2017 · Жалоба "огласите весь список, ппожалуйста!" © Похожий шок я испытал, когда разбирался с тексасовским проектом, где адреса периферии назначались в линк-скрипте (а каждое устройство жило в своей секции). Это же надо так запутать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 58 4 марта, 2017 Опубликовано 4 марта, 2017 · Жалоба Интересно, чем так страшен стартап? +1. Вот, к примеру, мой: <...> Или вот. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 4 марта, 2017 Опубликовано 4 марта, 2017 · Жалоба Или вот. Спасибо за ссылочку! Форкнул на всякий случай. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 4 марта, 2017 Опубликовано 4 марта, 2017 · Жалоба Похожий шок я испытал, когда разбирался с тексасовским проектом, где адреса периферии назначались в линк-скрипте (а каждое устройство жило в своей секции). Это же надо так запутать... А что в этом неправильного? Это основная задача линкера - распределять адресное пространство. Точно так же можно в icf-файле IAR определить адресные пространства периферии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 4 марта, 2017 Опубликовано 4 марта, 2017 · Жалоба А что в этом неправильного? Это основная задача линкера - распределять адресное пространство. Точно так же можно в icf-файле IAR определить адресные пространства периферии. Неправильно, что то, что можно и НУЖНО делать преносимыми средствами языка, делается непереносимыми средствами инструмента. Появляется нахренненужная привязка и инструменту. Точнее, конечно, "нужная", но только тексасу пытающемуся таким образом подсадить недалеких потребителей и на свои инструменты, и свои контролеры. Такая же фигня в общем и у IAR - хидеры ваяют со своими "расширениями" с той же целью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
let's see 0 4 марта, 2017 Опубликовано 4 марта, 2017 · Жалоба Неправильно, что то, что можно и НУЖНО делать преносимыми средствами языка, делается непереносимыми средствами инструмента. Появляется нахренненужная привязка и инструменту. Точнее, конечно, "нужная", но только тексасу пытающемуся таким образом подсадить недалеких потребителей и на свои инструменты, и свои контролеры. Такая же фигня в общем и у IAR - хидеры ваяют со своими "расширениями" с той же целью. Agreed 100% Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 4 марта, 2017 Опубликовано 4 марта, 2017 · Жалоба Agreed 100% Так-то оно так, да вот беда - в С не предусмотрено стандартных средств для назначения объектам реальных адресов. Впрочем для процессоров где периферия отображается в общее с памятью адресное пространство (типа ARM или MSP430) эти средства не особо нужны, можно обойтись указателями на регистры периферии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Шаманъ 1 5 марта, 2017 Опубликовано 5 марта, 2017 · Жалоба Что-то я не понял про привязку. У меня таблица векторов выглядит так: __attribute__ ((section(".isr_vectors"))) void (* const __vectors[])(void) = { &_estack, /* The initial stack pointer */ Reset_Handler, /* Reset Handler */ NMI_Handler, /* NMI Handler */ HardFault_Handler, /* Hard Fault Handler */ ......................... В скрипте линкера прописывается куда положить какую секцию и собственно все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 5 марта, 2017 Опубликовано 5 марта, 2017 · Жалоба А есть люди, кто этот массив частично описывают в программе, частично собирают в скрипте линкера. Вот я глядя в исходник и ошибся, считая сто там ошибка (неполная таблица). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 5 марта, 2017 Опубликовано 5 марта, 2017 · Жалоба Что-то я не понял про привязку. У меня таблица векторов выглядит так: В скрипте линкера прописывается куда положить какую секцию и собственно все. Разговор был про назначение адресов памяти регистрам периферии. Кто-то делает это в си-шных хидерах, кто-то - через линкер. Принципиальной разницы нет. Имхо. А есть люди, кто этот массив частично описывают в программе, частично собирают в скрипте линкера. Вот я глядя в исходник и ошибся, считая сто там ошибка (неполная таблица). Скорее такие люди просто надёргали кусков отовсюду, не разбираясь и не понимая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Шаманъ 1 7 марта, 2017 Опубликовано 7 марта, 2017 · Жалоба Скорее такие люди просто надёргали кусков отовсюду, не разбираясь и не понимая. Ну зачем же так сразу - некоторый смысл может быть если применяется загрузчик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 7 марта, 2017 Опубликовано 7 марта, 2017 · Жалоба Ну зачем же так сразу - некоторый смысл может быть если применяется загрузчик. И какой смысл? И при чём тут загрузчик? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Шаманъ 1 7 марта, 2017 Опубликовано 7 марта, 2017 · Жалоба И какой смысл? И при чём тут загрузчик? Ну проявите фантазию ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться