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

 
 
> Возникающее "Can't access memory at ... " LPC23XX приводит к зависанию
le-greem
сообщение Jul 4 2011, 11:22
Сообщение #1


Участник
*

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



Добрый день. У меня при работе со строками в контроллере LPC2378 время от времени возникает ошибка "Can't access memory at <адрес строки> " и контроллер зависает. Работа осуществляется, в основном, с помощью библиотечных функций "string.h". Изначально грешил на watchdog, пробовал отключать его следующим образом:

#define WATCHDOG_BASE 0x40000000 // Watchdog`s define base address
#define WDT_O_LOCK 0x00000C00 // Lock register
#define HWREG(x) (*((volatile unsigned long *)(x)))

void WatchdogLock(void)
{

HWREG(WATCHDOG_BASE + WDT_O_LOCK) = WDT_LOCK_LOCKED;
}


Но действие эффекта не возымело. Может кто-нибудь сталкивался с этой проблемой. В чем может быть дело?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение Jul 5 2011, 11:40
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



То есть Вы возвращаете указатель на локальный массив?
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Jul 5 2011, 12:57
Сообщение #3


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(toweroff @ Jul 5 2011, 07:40) *
То есть Вы возвращаете указатель на локальный массив?

ха, это классика. Один раз в студенчестве неделю протрахавшись над таким багом, усвоил урок на всю жизнь sm.gif

ОП, я вам рекомендую прикладной код на PC отлаживать - это и быстрее, и легче.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 5 2011, 18:29
Сообщение #4


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(ar__systems @ Jul 5 2011, 16:57) *
ха, это классика. Один раз в студенчестве неделю протрахавшись над таким багом, усвоил урок на всю жизнь sm.gif

ОП, я вам рекомендую прикладной код на PC отлаживать - это и быстрее, и легче.



Если вы начнете отлаживать этот жуткий код на PC в среде, например vs2008 и выше, первое, за что вам компилятор надает по башке, это за использованiе strcpy. Посмотрите, например, ее более надежный аналог strlcpy из мира Linux.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 5 2011, 19:58
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (sergeeff @ Jul 5 2011, 21:29) *
Если вы начнете отлаживать этот жуткий код на PC в среде, например vs2008 и выше, первое, за что вам компилятор надает по башке, это за использованiе strcpy.

Просто ПО ЛЮБОМУ надо думать, прежде чем засовывать башку куда-то. И одетая на голову панамка ввиде ctrncpy()/strlcpy() поможет только там, где ее правильно используют. Подчеркиваю, поможет реализовать идею, а не защитить от бездумного копирования строк. Какую из функций использовать надо решать по поставленной задаче, а не по тому, что какая-то из них "лучше" а другая так-же безусловно "хуже".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 6 2011, 06:16
Сообщение #6


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(zltigo @ Jul 5 2011, 23:58) *
Просто ПО ЛЮБОМУ надо думать, прежде чем засовывать башку куда-то.


Представлается, что для "юных" пользователей ценность веток, наподобии этой, состоит в том, что "старшие" товарищи не просто сообщают молодежи об их "безмозглости", но и показывают на их ошибки, разъясняя (или хотя бы заостряя внимание) почему так делать нельзя и как делать лучше. Ни коим образом не ратую за то, чтобы начать программировать за них.
Go to the top of the page
 
+Quote Post
le-greem
сообщение Aug 11 2011, 05:39
Сообщение #7


Участник
*

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



Цитата(sergeeff @ Jul 6 2011, 10:16) *
Представлается, что для "юных" пользователей ценность веток, наподобии этой, состоит в том, что "старшие" товарищи не просто сообщают молодежи об их "безмозглости", но и показывают на их ошибки, разъясняя (или хотя бы заостряя внимание) почему так делать нельзя и как делать лучше. Ни коим образом не ратую за то, чтобы начать программировать за них.



А как Вы представляли себе ветку "В помощь начинающему" если никто здесь не будет задавать, порою, глупых вопросов, чтобы получить на них ответы ? Я что то не нашел нигде у себя просьбы за меня программировать. В таком случае, непонятным остается причина столь резкого Вашего высказывания.

Сообщение отредактировал le-greem - Aug 11 2011, 06:31
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- le-greem   Возникающее "Can't access memory at ... " LPC23XX приводит к зависанию   Jul 4 2011, 11:22
- - aaarrr   Цитата(le-greem @ Jul 4 2011, 15:22)...   Jul 4 2011, 11:30
|- - le-greem   Цитата(aaarrr @ Jul 4 2011, 15:30) На 90%...   Jul 4 2011, 11:51
|- - zltigo   QUOTE (le-greem @ Jul 4 2011, 14:51)...   Jul 4 2011, 12:19
|- - le-greem   Цитата(zltigo @ Jul 4 2011, 16:19) 1. Зря...   Jul 5 2011, 11:37
||- - Dog Pawlowa   Цитата(le-greem @ Aug 11 2011, 08:39...   Aug 11 2011, 06:54
|- - ar__systems   Цитата(sergeeff @ Jul 5 2011, 14:29) Если...   Jul 5 2011, 23:12
|- - zltigo   QUOTE (ar__systems @ Jul 6 2011, 02:12) В...   Jul 5 2011, 23:29
|- - aaarrr   Цитата(zltigo @ Jul 6 2011, 03:29) даже в...   Jul 5 2011, 23:31
|- - zltigo   QUOTE (aaarrr @ Jul 6 2011, 02:31) Варнин...   Jul 5 2011, 23:40
- - le-greem   в данном случае да.   Jul 5 2011, 11:41
|- - aaarrr   Цитата(le-greem @ Jul 5 2011, 15:41)...   Jul 5 2011, 11:47
- - le-greem   Уже учел. Не думаю, что повторю эту ошибку впр...   Aug 12 2011, 05:48


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 15:36
Рейтинг@Mail.ru


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