-
- Чего так сложно? Бутлоадер должен всегда в памяти сидеть? iShust(60 знак., 05.02.2014 15:56)
- Сами поняли что написали? Загрузчик должен в памяти сидеть, чтобы рабочую программу проапдейтить можно было и при этом нельзя было скопировать... - Apтём(05.02.2014 16:25)
- Забей, ошибся разделом. Я про другие системы... - iShust(05.02.2014 19:34)
- Линуха что ли? С Убутами? Тогда забил... - Apтём(05.02.2014 20:34)
- Забей, ошибся разделом. Я про другие системы... - iShust(05.02.2014 19:34)
- Сами поняли что написали? Загрузчик должен в памяти сидеть, чтобы рабочую программу проапдейтить можно было и при этом нельзя было скопировать... - Apтём(05.02.2014 16:25)
- Пара ссылок по теме(или не совсем?): Apтём(362 знак., 04.02.2014 22:22 - 23:59)
- С другой стороны, если из бутлоадера экспортируют функции несколько модулей, и не только функции, а переменные... трудно вручную это всё через структуру. Может --just-symbols и не такая плохая идея. В надежде на то, что бутлоадер меняться будет fk0(526 знак., 05.02.2014 22:00)
- Попробую развить мысль дальше. Моя методика (описанная ниже) -- плохая. При компоновке программы с новой версией бутлоадера программа не работает с более старой. Даже если в ней ничего принципиально не менялось -- расположение функций в памяти fk0(3634 знак., 05.02.2014 21:19)
- Не согласен, что "по фиксированным адресам неудобно". Делаем структуру (единый хедер для загрузчика и приложения), тогда компилятор отловит несоответствия. А наполнить руками - это несложно, нечего там автоматизировать. - SciFi(04.02.2014 18:41)
- И в структуре указатели на функцию? И можно даже magic number всунуть. Чтоб не с той версией бутлоадера сразу ошибку давало и не глючило. Но как ты себе представляешь экспорт const struct ... на пик-контроллере проф. уровня??? Там это просто fk0(431 знак., 04.02.2014 18:55)
- Структуру нельзя. Обращение к программной памяти возможно только как к программной памяти (исполнение инструкций), но не на чтение данных. Т.е. нужно по фиксированному адресу написать в ассемблере jmp function1; jmp function2; jmp function3... fk0(293 знак., 04.02.2014 19:03)
- Не понятно почему к программной памяти обращение возможно только как к программной памяти. Если возможен загрузчик, то всяко программная память может и читаться и писаться. AlexBi(256 знак., 05.02.2014 10:47)
- Ох уж эти контроллеры профессионального уровня... SciFi(87 знак., 04.02.2014 20:08)
- На GCC? ;) - Vladimir Ljaschko(04.02.2014 20:32)
- На сях :-) - SciFi(04.02.2014 22:33)
- На GCC? ;) - Vladimir Ljaschko(04.02.2014 20:32)
- Структуру нельзя. Обращение к программной памяти возможно только как к программной памяти (исполнение инструкций), но не на чтение данных. Т.е. нужно по фиксированному адресу написать в ассемблере jmp function1; jmp function2; jmp function3... fk0(293 знак., 04.02.2014 19:03)
- И в структуре указатели на функцию? И можно даже magic number всунуть. Чтоб не с той версией бутлоадера сразу ошибку давало и не глючило. Но как ты себе представляешь экспорт const struct ... на пик-контроллере проф. уровня??? Там это просто fk0(431 знак., 04.02.2014 18:55)
- По фиксированным адресам таблицы векторов на функции разного типа. int f(int) и будет для передачи переменных. - Vladimir Ljaschko(04.02.2014 18:13)
- На правах потока сознания: А если бутлоадер создаст в своём теле таблицу, (например) с фиксированным адресом, с адресами вызываемых функций. Т.е. экспортировать надо только адрес таблицы, ну и знать порядок расположения функций. В качестве входных Chum_A(86 знак., 04.02.2014 18:12)
- :) Короче, API. Только наверное не указатели, а индексы. - Vladimir Ljaschko(04.02.2014 18:17)
- Нашёл опцию ld --just-symbols=file (она же -R file) для импортирования списка символов. Но как его экспортировать из проекта бутлоадера? - fk0(04.02.2014 18:18)
- Чего так сложно? Бутлоадер должен всегда в памяти сидеть? iShust(60 знак., 05.02.2014 15:56)