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

 
 
 
Reply to this topicStart new topic
> В смешенном проекте C&C++ не работает DAC., И Иногда срабатывает uint32_t __STREXW(uint32_t value, uint32_t *addr)
Basilij
сообщение Jan 25 2013, 19:55
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 175
Регистрация: 7-04-11
Пользователь №: 64 190



Здравствуйте господа знатоки.

Проект на С, работает нормально, после того как переименовал main.c в main.cpp, обозначил всё что нужно extern "C"всё работает вроде как надо, за исключением DAC, если в самое начало main() инициализацию и управление регистрами закинуть, то при пошаговой отладке через раз срабатывает, аналогичный код в "С" проекте срабатывает в любом месте.

Сейчас при всём при этом до точки останова, программа успевает зайти в(находится в core_cm3.c):
CODE
/**
* @brief STR Exclusive (32 bit)
*
* @param value value to store
* @param *addr address pointer
* @return successful / failed
*
* Exclusive STR command for 32 bit values
*/
uint32_t __STREXW(uint32_t value, uint32_t *addr)
{
uint32_t result=0;

__ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
return(result);
}

Может сталкивался кто из вас с подобным явлением...?

Сообщение отредактировал IgorKossak - Jan 25 2013, 22:07
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 29th June 2025 - 14:12
Рейтинг@Mail.ru


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