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

 
 
> Проблема "смещения памяти" Cortex M3
AntoXa01
сообщение Jan 18 2011, 09:25
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 1-11-10
Пользователь №: 60 574



Добрый день
Есть плата LM3S6965
Среда разработки - Eclipse + ARM plugin + GCC

Задание: вывести меню на дисплей 4*20

меню хранится так

CODE
volatile struct MenuItem {
char LongName[21];
char VisibleFor: 3;
unsigned char SubMenuLength: 5;
};

struct MenuItem menu[] = {
{" Калибровка ", MENU_VISIBLE_MODE_ALL, 0},
{" Настройки напряж-я ", MENU_VISIBLE_MODE_ALL, 0},
{" Настройка тока ", MENU_VISIBLE_MODE_ALL, 0},
{" Настройка АПВ ", MENU_VISIBLE_MODE_ALL, 0},
{" Настройка АВР ", MENU_VISIBLE_MODE_ALL, 0},
{" Настройка БРУ ", MENU_VISIBLE_MODE_ALL, 0},
{" Настройка Земля ", MENU_VISIBLE_MODE_USER, 0},
{" 8.vendorpass ", MENU_VISIBLE_MODE_VENDOR, 0},
{" 9.userpass 2 ", MENU_VISIBLE_MODE_USER, 0},
{" 10.vendorpass 2 ", MENU_VISIBLE_MODE_VENDOR, 0}
};



при отладке данные в этом массиве сдвигаются на 3 байта, непонятно, почему



а теперь самое интересное
вот фрагмент кода
(visible - показывает пункты меню или нет, в зависимости от уровня доступа)
CODE
void MenuInit(void){
TOTAL_MENU_ITEMS_COUNT = 10;
MakeVisibleMenu(mode);
}


//void Atas (int i) {
//i='A';
//}

void MakeVisibleMenu(char mode) {
char i;
VISIBLE_MENU_ITEMS_COUNT = -1;


1я функция - инициализация
2я, закомментированная - ничего не делает и нигде не вызывается
3я функция покаызвает меню (пукнты, которые нужно показать)



внимание, вопрос:
если убрать комментарии с функции - все класс, все работает (но функция-то нигде не вызывается)
если оставить или удалить функцию - сдвиг данных

что делать?
Go to the top of the page
 
+Quote Post



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

 


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


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