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

 
 
 
Reply to this topicStart new topic
> Непонятно с Code Protect, LPC2468
toweroff
сообщение Mar 24 2010, 17:39
Сообщение #1


Гуру
******

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



Без CRPx все работает, USB поднимается, девайс адекватен
Включаю CRP1 или CRP2 (0х12345678 или 0х87654321 по адресу 0x1FC), зверь вообще молчит, USB_CONNECT не выставляет и, соответственно, компьютером даже как неопознанное устройство не распознается
Смотрел, что там скомпилилось... линкер вроде как все нормально собрал, да и никаких ему указаний по размещению, кроме

const unsigned int secure __at(0x000001FC) = 0x87654321 ;

не было, никакая функция не портится этой константой

Какие есть мысли, куда посмотреть еще?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 24 2010, 17:53
Сообщение #2


Гуру
******

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



Цитата(toweroff @ Mar 24 2010, 20:39) *
Какие есть мысли, куда посмотреть еще?

В бинарник посмотреть. В бинарник, до и после.
Цитата
никакая функция не портится этой константой

как я в этом сомневаюсь sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
toweroff
сообщение Mar 24 2010, 18:08
Сообщение #3


Гуру
******

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



Смотрю бинарник. Без CRPx

Vectors LDR PC, Reset_Addr
LDR PC, Undef_Addr
LDR PC, SWI_Addr
LDR PC, PAbt_Addr
LDR PC, DAbt_Addr
и т.д.


А как только вставляю размещение константы, это дело уползает до адреса 0x200

и вот тут вообще не знаю как победить... хотя, казалось бы, для этого региона явно указано

AREA RESET, CODE, READONLY
ARM
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 24 2010, 18:30
Сообщение #4


Гуру
******

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



Цитата(toweroff @ Mar 24 2010, 21:08) *
А как только вставляю размещение константы, это дело уползает до адреса 0x200

Ну вот и все smile.gif. Курите скрипт линкера, что там с принудительным заданием адресов и, как минимум, выделением векторов в отдельную маленькую секцию.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
toweroff
сообщение Mar 24 2010, 18:38
Сообщение #5


Гуру
******

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



Цитата(zltigo @ Mar 24 2010, 21:30) *
Ну вот и все smile.gif. Курите скрипт линкера, что там с принудительным заданием адресов и, как минимум, выделением векторов в отдельную маленькую секцию.

где бы его в Keil 4 еще найти smile.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 24 2010, 18:44
Сообщение #6


Гуру
******

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



Цитата(toweroff @ Mar 24 2010, 21:38) *
где бы его в Keil 4 еще найти smile.gif

Ну, с Keil не помогу sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
toweroff
сообщение Mar 24 2010, 18:48
Сообщение #7


Гуру
******

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



странно, но проект под LPC2103 нормально компилится, все опции в проекте аналогичны LPC2468... и как всегда, заказчик ждет сегодня )))))))
Go to the top of the page
 
+Quote Post
toweroff
сообщение Mar 24 2010, 21:59
Сообщение #8


Гуру
******

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



вот в таком виде у меня используется scatter линкера

Код
LR_IROM1 0x00000000  0x00080000 {   ; load region size_region
  ER_IROM1 0x00000000   { ; load address = execution address
   LPC2400.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
}
  RW_IRAM1 0x40000000 0x00010000  { ; RW data
   .ANY (+RW +ZI)
  }
}


по идее, секцию RESET он должен впихнуть в самое начало с адреса 0, но не происходит этого... мозг рванет сейчас... (((
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 24 2010, 23:10
Сообщение #9


Гуру
******

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



Цитата(toweroff @ Mar 25 2010, 00:59) *
по идее, секцию RESET он должен впихнуть в самое начало с адреса 0, но не происходит этого...

Почему - происходит, с начала и впихивает, только у Вас в эту секцию очевидно кроме собственно векторов и другого напихано, вот она до 0x1FC и не влезает. Смотрите, как ограничить размер, до размера таблицы.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
toweroff
сообщение Mar 25 2010, 03:41
Сообщение #10


Гуру
******

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



Цитата(zltigo @ Mar 25 2010, 02:10) *
Почему - происходит, с начала и впихивает, только у Вас в эту секцию очевидно кроме собственно векторов и другого напихано, вот она до 0x1FC и не влезает. Смотрите, как ограничить размер, до размера таблицы.

именно так все и было. Разобрался... разделил вектора и начальную инициализацию, прописал линкеру первым ставить в блок вектора.
спасибо!
Go to the top of the page
 
+Quote Post

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

 


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


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