Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Создание проекта (Keil 5) + ошибка в Proteus 8 STM32F103C6

Ср ноя 29, 2017 01:39:31

Здравствуйте. Поскольку мои микроконтроллеры пока что находятся на складах в другой стране, я бы хотел немного поиграться в симуляторе. Получаю .hex в Keil 5 и CoIDE 1.7.8, закидываю их в протеус и при симуляции 10 раз в микросекунду мне сообщают, что "Access to register of unclocked peripheral at 0x40010800 cause BUS_FAULT". Я правильно понимаю, что это не включилось тактирование? В данном случае (нашел в даташите) это адрес регистра GPIOA_CRL, но если заместо работы с портами попытаться настроить к примеру таймер, то будет та же самая ошибка, только адрес в ошибке поменяется на регистры таймеров.
В Keil в pack installer я выбрал STM32F103C6 и установил все что можно. При создании проекта я выбираю этот микроконтроллер и подключаю CORE из CMSIS, Startup из Devise, RCC, GPIO с Framevork из StdPerifDevise. Потом нажимаю ПКМ по Source Group 1, выбираю Add New Item, где добавляю main.c. Ну и данный код в main:
Код:
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"

int main(void) {
   GPIO_InitTypeDef GPIO_InitStructure;
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_2;
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
     GPIO_Init(GPIOA, &GPIO_InitStructure);
   while(1) {
   }
}

Одних этих include достаточно ведь? Пути к папкам, где лежат эти файлы нигде не надо же указывать? В общем далее в Options for Target на в кладке Output, ставлю галку Create HEX. Нажимаю Build, ошибок нет, получаю .hex, закидываю его в протеус ну и эта ошибка. Пробовал без StdPerif (подключив только CORE из CMSIS и Startup из Devise). Тактирование включал записью в регистр RCC->APB2ENR число 0x4 или 0xFFFFFFFF и настраивал ножки в GPIOA->CRL числом 0x3. Тот же самый результат. В CoIDE выбрал микроконтроллер и подключил CMSIS Boot, CMSIS core RCC, GPIO. Набрал тот же самый код, Build без ошибок и все равно в протеусе ошибка. Полазил по файлам библиотек, вроде все нужные define есть (частота в 72 MHz точно не закоментирована). Так же пробовал поискать в инете различные готовые .hex для этого микроконтроллера, но либо вообще ничего не происходило, либо эта ошибка. Единственное можно при создание проекта в протеусе выбрать Create Firmware Project, появится вкладка для набора кода. Введенный туда "Hello, world!" вроде работает, точно не помню, но это не совсем то, что нужно. Atmega8 в протеусе нормально работала, а вот ARM никак не могу запустить.
Ну и собственно вопрос: В может быть причина? Я неправильно создаю проект? Нерабочие библиотеки себе IDE скачали? Или если залить эти прошивки в реальный микроконтроллер, то они будут работать (проблема только в протеусе)?

Re: Создание проекта (Keil 5) + ошибка в Proteus 8 STM32F103

Ср ноя 29, 2017 09:46:42

Возьми CUBE для генерации первоначального кода и пиши в Keil на HAL.

Re: Создание проекта (Keil 5) + ошибка в Proteus 8 STM32F103

Ср ноя 29, 2017 10:54:07

Возьми CUBE для генерации первоначального кода и пиши в Keil на HAL.

Гуру медвежьих услуг? :)))

Orel007127, модель в протеусе с багами, сейчас тестируют новую...

Re: Создание проекта (Keil 5) + ошибка в Proteus 8 STM32F103

Ср ноя 29, 2017 11:45:57

тактирование STM32 в протеусе на данный момент похоже не "симулируется".
тут на 8МГц дрыганье ногами и далее симуляцию таймера в протеусе тестировал:
viewtopic.php?p=3180635#p3180635

Re: Создание проекта (Keil 5) + ошибка в Proteus 8 STM32F103

Ср ноя 29, 2017 15:00:39

тут на 8МГц дрыганье ногами и далее симуляцию таймера в протеусе тестировал:
Ваш проект у меня в Keil 5 нормально открывается и компилируется без ошибок. Полученный .hex в протеусе тоже работает. Отключаю тактирование и летят те же самые ошибки. Получается это я не правильно что-то при создании проекта делаю... Но что именно?

Re: Создание проекта (Keil 5) + ошибка в Proteus 8 STM32F103

Ср ноя 29, 2017 15:13:47

Orel007127, еще раз...
Labcenter Electronics признали ошибки в моделях, сейчас работают над устранением...

Re: Создание проекта (Keil 5) + ошибка в Proteus 8 STM32F103

Ср ноя 29, 2017 18:36:29

dosikus, это точно проблема только в протеусе? Проект у меня правильно создан и если залить прошивку в реальный мк, то он будет нормально работать? Просто тактирование в протеусе работает, смотря что за прошивка, от библиотеки видать зависит.

Re: Создание проекта (Keil 5) + ошибка в Proteus 8 STM32F103

Ср ноя 29, 2017 20:54:17

Да.
Просили протестировать модели , получил аналогичные результаты .
Отослал проекты разработчику, ответ выше уже озвучил.
Можешь сам запрос сделать - ник Тень обитает на казусе...

Re: Создание проекта (Keil 5) + ошибка в Proteus 8 STM32F103

Чт ноя 30, 2017 16:22:43

dosikus, спасибо.
Ответить