Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Использование всей flas памяти
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
d7d1cd
Привет всем. Подскажите, знающие люди, как можно в микроконтроллерах MSP430 использовать всю флеш память. Допустим, сама программа занимает 20 кБ места. Тогда, если флеш на 60 кБ, остается 40 кБ. Даже если защитить свой МК, то все равно найдутся умельцы, которые достанут прошивку и вставят в пустое место что-то свое. Можно ли как-то сделать, так сказать, эффект использования всей памяти?
_Артём_
Цитата(d7d1cd @ Feb 26 2013, 18:54) *
Даже если защитить свой МК, то все равно найдутся умельцы, которые достанут прошивку и вставят в пустое место что-то свое.

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

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

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

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

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

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


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


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


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


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


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


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


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

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

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

d7d1cd
Спасибо. А если ничего такого не делать, а просто скомпилировать программу, то в получившемся HEX-е не будет ни единого "мусорного" байта?
Rud0x1
IAR, например, по умолчанию, не будет заполнять неиспользуемые адреса. Надо зайти в св-ва проекта -> Linker -> Checksum и поставить галку "Fill unused memory".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.