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

 
 
> Зависание драйвера CAN в LPC2378
TanT
сообщение Sep 19 2008, 08:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 22-11-05
Из: Россия->Омск
Пользователь №: 11 210



Странный глюк в моём драйвере CAN: при передачи до 768 байт ( 96 кадров по 8 байт) всё номарльно можно хоть скопом 768, хоть по 10 байт, но после переданных 768 передастся ещё одна посылка и всё виснет.. потом помогает лишь ресет. Скорости менял - безрезультатно.

Сообщение отредактировал TanT - Sep 19 2008, 08:36


--------------------
Если вы не можете объяснить что-то шестилетнему ребенку, значит, вы сами этого не понимаете.
Альберт Эйнштейн
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TanT
сообщение Sep 30 2008, 07:35
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 22-11-05
Из: Россия->Омск
Пользователь №: 11 210



Фильтр не использую, пока. Моя проблема, как выяснилось, совсем другого рода и совпадение количества передаваемых пакетов с количеством счётчика ошибок всего лишь случайность.
В моём случае проблема с выделением памяти.
Когда я использую семафор ожидания готовности данных передачи по CAN заполняется вся память выделенная под задачу и происходит переполнение. Однако, программа ожидает данные (OSSemPend) после готовности освобождает ресурс (OSSemPost), но быстро расходует память. Без использования Post, Pend всё передаётся неограниченными порциями. Кто виноват? Что делать?


--------------------
Если вы не можете объяснить что-то шестилетнему ребенку, значит, вы сами этого не понимаете.
Альберт Эйнштейн
Go to the top of the page
 
+Quote Post
wangan
сообщение Sep 30 2008, 08:24
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 30-11-05
Из: Омск
Пользователь №: 11 590



Фуф еле победил, оказалось ошибка в даташите:
ревизия чипа - A
имею UM10237 LPC24XX User manual от Rev. 01 — 18 July 2008
написано:
Since each CAN bus has its own address map, each entry also contains the number of the CAN Controller (001-010) to which it applies.

я и программил номер CAN контроллера CAN1 как 001 а CAN2 как 002 а заработало когда сделал: CAN1 как 000 а CAN2 как 001.

p.s. примеры работы с каном с фильтрами и не только можно глянуть в примерах в кейле

Сообщение отредактировал wangan - Sep 30 2008, 08:27
Go to the top of the page
 
+Quote Post



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

 


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


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