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

 
 
> Использование всей flas памяти
d7d1cd
сообщение Feb 26 2013, 16:54
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Привет всем. Подскажите, знающие люди, как можно в микроконтроллерах MSP430 использовать всю флеш память. Допустим, сама программа занимает 20 кБ места. Тогда, если флеш на 60 кБ, остается 40 кБ. Даже если защитить свой МК, то все равно найдутся умельцы, которые достанут прошивку и вставят в пустое место что-то свое. Можно ли как-то сделать, так сказать, эффект использования всей памяти?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
_Артём_
сообщение Feb 26 2013, 17:03
Сообщение #2


Гуру
******

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



Цитата(d7d1cd @ Feb 26 2013, 18:54) *
Даже если защитить свой МК, то все равно найдутся умельцы, которые достанут прошивку и вставят в пустое место что-то свое.

Вы так уверены, чт такие умельцы обязательно найдутся? Оно им надо?

Цитата(d7d1cd @ Feb 26 2013, 18:54) *
вставят в пустое место что-то свое

И что толку что вставят? Как этот чужой код управление получит? Ваша программа его вызовет что ли?

Цитата(d7d1cd @ Feb 26 2013, 18:54) *
Можно ли как-то сделать, так сказать, эффект использования всей памяти?

Можно дополнить вашу программу чем-нибудь левым - например взять зашить содержимым какого-нибудь зипа или "Войну и мир" зашить или кусок другой программы для мсп430.

Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Feb 27 2013, 02:47
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Цитата(_Артём_ @ Feb 26 2013, 21:03) *
Вы так уверены, чт такие умельцы обязательно найдутся? Оно им надо?


А вдруг найдутся! Как программисту, мне надо стараться предусмотреть любой вариант развития событий. Я понимаю, что все сделанное человеком, можно сломать. Но хочется как можно сильнее усложнить жизнь взломщику.


Цитата(_Артём_ @ Feb 26 2013, 21:03) *
И что толку что вставят? Как этот чужой код управление получит? Ваша программа его вызовет что ли?


Да очень просто: заменят вызов какой-нибудь моей процедуры на вызов своей. Уже в своей процедуре вызовут мою пропущенную, а дальше "прыгнут" на то место, которое стояло после вызова моей процедуры в нетронутом коде. Все.


Цитата(_Артём_ @ Feb 26 2013, 21:03) *
Можно дополнить вашу программу чем-нибудь левым - например взять зашить содержимым какого-нибудь типа или "Войну и мир" зашить или кусок другой программы для мсп430.


Так вот как это сделать? Я же не знаю сколько места в МК займет моя программа после компиляции.


Go to the top of the page
 
+Quote Post
Rud0x1
сообщение Feb 27 2013, 04:51
Сообщение #4





Группа: Новичок
Сообщений: 3
Регистрация: 4-12-12
Пользователь №: 74 695



Цитата(d7d1cd @ Feb 27 2013, 06:47) *
Так вот как это сделать? Я же не знаю сколько места в МК займет моя программа после компиляции.


Если в IAR'e, то:

Можно заполнить неиспользуемое место каким-нить байтовым шаблоном. И прошивка получится во всю flash.
Можно прямо в программме задать массив, инициализированный всяким мусором, а не одним и тем же шаблоном. по-моему это директива __root.

Посмотреть все, что натворил линкер (сколько места занимает прошивка, адреса) можно в .map файле, только нужно указать линкеру, что он должен создать такой файл.

Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Feb 27 2013, 16:52
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Спасибо. А если ничего такого не делать, а просто скомпилировать программу, то в получившемся HEX-е не будет ни единого "мусорного" байта?
Go to the top of the page
 
+Quote Post
Rud0x1
сообщение Feb 28 2013, 04:51
Сообщение #6





Группа: Новичок
Сообщений: 3
Регистрация: 4-12-12
Пользователь №: 74 695



IAR, например, по умолчанию, не будет заполнять неиспользуемые адреса. Надо зайти в св-ва проекта -> Linker -> Checksum и поставить галку "Fill unused memory".
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 00:07
Рейтинг@Mail.ru


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