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

Re: Keil uVision

Вт май 15, 2018 16:56:54

Ок. Я про такой и не знал. Держите плюсик.

Re: Keil uVision

Вт май 15, 2018 21:20:14

arkhnchul писал(а):Тот же допиленный из коробки eclipse плюс gcc.
Не пойму чем вам так нравится IDE на основе eclipse? Они же тормозят!

Re: Keil uVision

Вт май 15, 2018 22:16:09

они привычны, очень фичасты, настраиваемы. Тормоза - вещь субъективная и таки зависящая от компа. Разве что стартует долго, но у меня от этого есть средство -
Код:
arkhnchul@arkhost-scow:~$ uptime
 23:18:10 up 24 days,  1:15,  0 users,  load average: 0,39, 0,54, 0,62

Re: Keil uVision

Ср май 16, 2018 15:58:36

Есть IDE на основе Code::Block. Не тормозят.

Re: Keil uVision

Ср май 16, 2018 22:52:59

ну да, есть они, кто ж спорит-то :dont_know:

Re: Keil uVision

Пт ноя 30, 2018 17:30:44

В IAR есть так называемые preinclude files, что по мне очень удобно. В Кейле как-то можно подобное организовать? У меня пока не получилось. Спасибо.

Re: Keil uVision

Пт ноя 30, 2018 20:04:12

По мне, так совершенно вредная опция. Чем меньше код зависит от настроек IDE, тем лучше. Нужно подключить файл - надо писать #include и не мучать опу.

Re: Keil uVision

Пт ноя 30, 2018 20:18:11

В IAR есть так называемые preinclude files, что по мне очень удобно. В Кейле как-то можно подобное организовать? У меня пока не получилось. Спасибо.

Удобно что? Х***я подобная визардо_тыкалкам?
Таки есть в кайло подобное г.

Re: Keil uVision

Пт ноя 30, 2018 22:49:45

А какие удобства сия фича создает и какие проблемы решает? Вообще не пойму, куда ее можно с пользой применять.

Re: Keil uVision

Сб янв 19, 2019 16:09:52

Привет народ. Не стал читать тему. Вопрос в лоб. Изучаю и практикую STM32. Освоил I2C, UART. С железом вообще никаких проблем нет.
А вот лед блинк никак не поддается...
В общем, ухожу из main в свою функцию MyMain(), в ней инкрементирую глобальную переменную, по совпадению включаю светодиод. Переменная объявлена перед main как uint8_t temp = 0. В MyMain глобальная переменная temp объявлена как extern uint8_t temp. Почему temp всегда равна 0?


else{
посоветуйте нормальную IDE вместо КАЛЛ
}

Re: Keil uVision

Сб янв 19, 2019 19:17:19

Для начала
СпойлерИзображение

А IDE вторична.

Re: Keil uVision

Сб янв 19, 2019 19:20:27

Сухарь писал(а):посоветуйте нормальную IDE
http://purebasic.mybb.ru/viewtopic.php?id=575

Re: Keil uVision

Сб янв 19, 2019 19:43:57

Для начала
СпойлерИзображение

А IDE вторична.



Что с тобой случилось что ты начал ANSI C рекомендовать к прочтению? Почему не С++?

Мурик, кончай уже советовать хрень, KEIL лучшая.

Re: Keil uVision

Сб янв 19, 2019 20:03:21

Что с тобой случилось что ты начал ANSI C рекомендовать к прочтению? Почему не С++?
Степ бай степ. Сначала таблица умножения, потом тригонометрия, затем высшая математика. Какой ему С++, если в двух переменных разобраться не может.

Re: Keil uVision

Сб янв 19, 2019 21:43:05

Чего началось то? Раньше с AVR и cvavr никаких проблем не было,обьявил перед main -ом переменную и она автоматом стала глобальной и доступной в обработчиках прерываний и всех остальных функциях ,а в кале какието траблы,типа extern-ов. Читал Вами указанную книжку,об этом там ни слова, и что теперь в каждой функции, напоминать компилятору о существовании глобальной переменной externom чтоли? "грамматическая ошибка на уровне 4 класса" какой-то

Re: Keil uVision

Сб янв 19, 2019 22:49:19

Чудак который не способен связать две переменные называет огромный и мощный продукт калом... Не умеешь, не берись.
Код не привёл? Гадать? Для начала объяви переменные ещё и волатильными.

Re: Keil uVision

Сб янв 19, 2019 23:56:49

Oxford писал(а):KEIL лучшая.
Денег стоит и не малых.
Переход на M0 не вариант. Проще IDE сменить на бесплатную.

Сухарь писал(а):обьявил перед main -ом переменную и она автоматом стала глобальной и доступной в обработчиках прерываний и всех остальных функциях
В других исходниках тоже доступна? Видимо в cvavr не используется раздельная компиляция, когда каждой файл компилируется в отдельности и о коде других файлов, компилятор ничего не знает.

Re: Keil uVision

Вс янв 20, 2019 00:16:59

Тебе какая разница платная не платная ты все равно ничего не продаешь. На торрентах лекарство есть.
M0/L0 там бесплатно и до 32кб на все.

Re: Keil uVision

Вс янв 20, 2019 00:49:41

Чего началось то? Раньше с AVR и cvavr никаких проблем не было,обьявил перед main -ом переменную и она автоматом стала глобальной и доступной в обработчиках прерываний и всех остальных функциях ,а в кале какието траблы,типа extern-ов.
Ключевое слово тут ПРЕРЫВАНИЙ. И ответ вовсе не extern, а volatile.

Читал Вами указанную книжку,об этом там ни слова, и что теперь в каждой функции, напоминать компилятору о существовании глобальной переменной externom чтоли? "грамматическая ошибка на уровне 4 класса" какой-то
Да что же ты врёшь? Раздел 10.1
В некоторых случаях объявление extern можно опустить. Если определение внешней переменной в исходном файле расположено выше функции, где она используется, то в объявлении extern нет необходимости.


Сухарь, проблема твоя яйца выеденного не стоит, но ты её даже сформулировать правильно не можешь. Это от полного непонимания как работает компилятор, а тем более оптимизирующий компилятор. Выкладывай код и ещё до восхода солнца тебе ошибку найдут (ткнут носом).

Re: Keil uVision

Вс янв 20, 2019 09:20:43

Чудные дела... Вчера это не работало и Keil ругался на не объявленную переменную. Сегодня все собралось, прошилось и работает, видимо перезагрузка помогла...
Спойлер#include "main.h"
#include "stm32f1xx_hal.h"

uint16_t temp = 0;

#include "MyMain.c"

void SystemClock_Config(void);
static void MX_GPIO_Init(void);

void MyMain(void);

int main(void){
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();

while(1){
MyMain();
}
}

void SystemClock_Config(void){

RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;

/**Initializes the CPU, AHB and APB busses clocks
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}

/**Initializes the CPU, AHB and APB busses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}

/**Configure the Systick interrupt time
*/
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

/**Configure the Systick
*/
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

/* SysTick_IRQn interrupt configuration */
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}

/** Configure pins as
* Analog
* Input
* Output
* EVENT_OUT
* EXTI
*/
static void MX_GPIO_Init(void){

GPIO_InitTypeDef GPIO_InitStruct;

/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();

/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);

/*Configure GPIO pin : PC13 */
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

}

void _Error_Handler(char *file, int line){
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
while(1)
{
}
/* USER CODE END Error_Handler_Debug */
}

#ifdef USE_FULL_ASSERT

void assert_failed(uint8_t* file, uint32_t line)
{

}
#endif

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/


Спойлерvoid MyMain(void){
temp++;
HAL_Delay(1);
if(temp >= 1000){
temp = 0;
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,RESET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,SET);
}
}


ни extern, ни volatile не понадобились...
Да не ругайтесь вы, парни. Перешел на новый для себя камень и прежде, чем писать что - то серьезное - люблю проверить и попробовать все с самых азов. И предложенные книжки еще лет 8 назад читал, ничего не понятно было, вот и не помню ничо...
Ответить