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

 
 
> Проблемы с настройкой IAR.
Вячик13
сообщение Jul 27 2015, 06:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 17-01-12
Пользователь №: 69 604



Имеется IAR 6.50 для ARM. Проект выполнен для STM32F103VCT6 с использованием scmRTOS V4.00.

Компилируется нормально, загружается нормально.
При попытке выполнения функции __iar_data_init3 (инициализация статических переменных) программа "улетает" на вектор прерывания "BusFault_Handler".
Стек вызовов подпрограмм:
__iar_data_init3() -> __iar_lz77_init3() -> OutStream_Write()

Вылетает при выполнении POP из функции OutStream_Write().

Подозреваю, что что-то неправильно настроено в опциях проекта. Что?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение Jul 28 2015, 09:26
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



"Проект выполнен для STM32F103VCT6", а файл .icf от процессора STM32F103xD.
Одно из их отличий - разное количество памяти на борту.
Цитата
61 156 bytes of readwrite data memory

А у STM32F103VCT6, между прочим, RAM всего 48к, маловато будет.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Вячик13
сообщение Jul 28 2015, 11:06
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 17-01-12
Пользователь №: 69 604



Цитата(SSerge @ Jul 28 2015, 12:26) *
"Проект выполнен для STM32F103VCT6", а файл .icf от процессора STM32F103xD.
Одно из их отличий - разное количество памяти на борту.

А у STM32F103VCT6, между прочим, RAM всего 48к, маловато будет.


Проверено у STM32F103VCT6 имеется на борту 64 Кбайт. Попытался писать из отладчика в конечную ячейку 0x2000FFFF. Пишется и читается. Файл .icf от процессора STM32F103xD взял потому что подходящего под рукой не было и немножко его поправил.

Наблюдается немного другая странность. Добавляю в проект следующие строки:

#pragma location=0x0803FFF0
const char StrTest1[] = "String1";
#pragma location=0x0805FFF0
const char StrTest2[] = "String2";
#pragma location=0x0807FFF0
const char StrTest3[] = "String3";

const int Test1 @ 0x20000000 = 0xAA55;

Цель эксперимента - определить величину доступной области Flash-памяти и размещение констант в ОЗУ.
Компилируется, загружается, но в окне памяти не отображается.



Кстати, установил IAR 7.40. Эффект тот же.

Кстати в *.icf размер стека установлен 0x1000. Может стека не хватает?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 11:48
Рейтинг@Mail.ru


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