Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по Crossworks
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Ave
Кто может подсказать почему в Crossworks при задании указателя на адрес 0x10000

char *Flash_ptr = (char *)0x10000;

Flash_ptr указывает на 0x0000

rezident
Наверное потому, что этот адрес выходит за границы диапазона, представляемого 16-и битными адресами (0x0000 - 0xFFFF).
Ave
Используется MSP430F5528. У него 128кБ flash.

На строку в программе
char * Flash_ptr = (char *) 0x10000;
Компилятор выдает предупреждение
cast or assignment from 'long int' to 'unsigned char *' is compiler dependent

В примерах на IAR используется данная конструкция. Не хочется переходить на IAR.
rezident
Проверьте в опциях компилятора, какую именно модель памяти вы используете? Может быть как раз там ограничение на 64k. Ну и упрек компилятора к вам совершенно справедлив. Укажите явно, что константа у вас типа unsigned long. Ведь по-умолчанию она типа unsiged int, который на MSP430 16-и битный.

char * Flash_ptr = (char *) 0x10000UL;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.