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

 
 
 
Reply to this topicStart new topic
> CrossStudio 1.7 и LPC1768, подружить
Dron_Gus
сообщение Nov 20 2009, 20:40
Сообщение #1


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



На сайте Rowley пак для этой линейки только для студии от 2.0. Но на нее нет лекарства и выглядит как матрешка. Пытаюсь подружить с версией 1.7. Осталось два нерешенных вопроса.
1) при каждой полной перекомпиляции или изменении настроек слетает скрипт линкера и из него пропадает
Код
__STACKSIZE_PROCESS__ = 128;

без этого линкер ес-но ругается. Каждый раз добавлять это в файл - тоже бред. Остальные значения студия берет из настроек. Этой настройки нема.
2) мало относится к студии конкретно. Как заставить линкер раскладывать секции по нескольким сегментам? Как только вылез за 32 К пошли маты
Код
.bss is too large to fit in RAM memory segment

Хотя я в файле flash_placement.xml для всех трех сегментов указал
Код
    <ProgramSection alignment="4" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process"/>
    <ProgramSection alignment="4" load="No" name=".fast_run"/>
    <ProgramSection alignment="4" load="No" name=".data_run"/>
    <ProgramSection alignment="4" load="No" inputsections="*(.bss .bss.* .gnu.linkonce.b.*) *(COMMON)" name=".bss"/>
    <ProgramSection alignment="4" load="No" inputsections="*(.non_init .non_init.*)" name=".non_init"/>


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
yuri_t
сообщение Nov 21 2009, 18:29
Сообщение #2


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

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



http://www.tnkernel.com/downloads/tnkernel...xM3-LPC1766.zip

Там (по ссылке) есть проект и Flash Loader для CrossStudio 1.7.

Предварительно надо поставить LPC17ХХ pack от версии 2.0. Он ставится,
а всякие warning messages при установке можно проигнорировать.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Nov 21 2009, 20:44
Сообщение #3


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Пак поставил. За ссылку спасибо, но она мне мало помогла. Ибо там в Loader_MemoryMap.xml все равно описан только один сегмент sram. И вместо MemoryMap там используется *.ld файл. Я с этим пока не разобрался.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
yuri_t
сообщение Nov 22 2009, 07:56
Сообщение #4


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

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



Цитата(Dron_Gus @ Nov 22 2009, 00:44) *
Пак поставил. За ссылку спасибо, но она мне мало помогла. Ибо там в Loader_MemoryMap.xml все равно описан только один сегмент sram. И вместо MemoryMap там используется *.ld файл. Я с этим пока не разобрался.


Script линкера *.ld для проекта (не Loader-а) строится автоматически из файла flash_placement.xml.

В частности:

<ProgramSection alignment="4" size="__STACKSIZE__" load="No" name=".stack"/>
<ProgramSection alignment="4" size="__STACKSIZE_IRQ__" load="No" name=".stack_irq"/>
<ProgramSection alignment="4" size="__STACKSIZE_FIQ__" load="No" name=".stack_fiq"/>
<ProgramSection alignment="4" size="__STACKSIZE_SVC__" load="No" name=".stack_svc"/>
<ProgramSection alignment="4" size="__STACKSIZE_ABT__" load="No" name=".stack_abt"/>
<ProgramSection alignment="4" size="__STACKSIZE_UND__" load="No" name=".stack_und"/>


__STACKSIZE_PROCESS__ там не используется .
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Nov 22 2009, 11:21
Сообщение #5


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Еще раз спасибо! Вчера вечером недоосознал Ваше сообщение и пытался прикрутить файлы от лоадера. Сегодня понял свою ошибку и первая проблема ушла. Хотя пока не понятно откуда берется значение для установки стека приложения (их же в cortex-m3 всего два осталось). И можно ли поставить размеры стеков irq и fiq равными нулю.

По второй проблеме - кроссстудия все равно продолжает считать, что у нее в распоряжении только 32 Кб памяти. sad.gif


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
yuri_t
сообщение Nov 22 2009, 13:26
Сообщение #6


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

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



В файле flash_placement.xml описываются сегменты которые линкер будет считать
относящимся к RAM

<Root name="Flash Section Placement">
<MemorySegment name="Internal SRAM;RAM;SRAM;SDRAM;DRAM">
...
...

В файле LPC1766_MemoryMap.xml описаны дополнительные сегменты ОЗУ-

...
...
<MemorySegment size="0x4000" access="Read/Write" start="0x2007C000" name="AHBSRAM0"/>
<MemorySegment size="0x4000" access="Read/Write" start="0x20080000" name="AHBSRAM1"/>
...
...


Попробуите добавить "AHBSRAM0" и "AHBSRAM1" к строке "MemorySegment" в файле
flash_placement.xml - должно быть что-то типа

<MemorySegment name="Internal SRAM;RAM;SRAM;SDRAM;DRAM;AHBSRAM0;AHBSRAM1">

Следует помнить, что инициализацию регистров для нормальной работы с "AHBSRAM0" и "AHBSRAM1"
надо делать самому, причем до первого access к этим областям памяти.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Nov 22 2009, 16:34
Сообщение #7


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Цитата(yuri_t @ Nov 22 2009, 16:26) *
Попробуите добавить "AHBSRAM0" и "AHBSRAM1" к строке "MemorySegment" в файле
flash_placement.xml - должно быть что-то типа

<MemorySegment name="Internal SRAM;RAM;SRAM;SDRAM;DRAM;AHBSRAM0;AHBSRAM1">

Следует помнить, что инициализацию регистров для нормальной работы с "AHBSRAM0" и "AHBSRAM1"
надо делать самому, причем до первого access к этим областям памяти.


Вроде как линкуется и не ругается. Правда встроенный "памяте-метр" показывает превышение. При запуске вылетает в HardFault. Хотя в стартап добавил:
Код
  ldr r0, =SC_BASE_ADDRESS
  /* power on usb and ethernet */
  ldr r1, [r0, #PCONP_OFFSET]
  orr r1, r1, #PCONP_PCENET_BIT
  orr r1, r1, #PCONP_PCUSB_BIT
  str r1, [r0, #PCONP_OFFSET]

Я в асме не силен. Это верно? И достаточно ли включить соответствующие модули, чтобы была доступна их память?


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
yuri_t
сообщение Nov 23 2009, 07:06
Сообщение #8


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

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



Цитата(Dron_Gus @ Nov 22 2009, 19:34) *
Вроде как линкуется и не ругается. Правда встроенный "памяте-метр" показывает превышение. При запуске вылетает в HardFault. Хотя в стартап добавил:
Код
  ldr r0, =SC_BASE_ADDRESS
  /* power on usb and ethernet */
  ldr r1, [r0, #PCONP_OFFSET]
  orr r1, r1, #PCONP_PCENET_BIT
  orr r1, r1, #PCONP_PCUSB_BIT
  str r1, [r0, #PCONP_OFFSET]

Я в асме не силен. Это верно? И достаточно ли включить соответствующие модули, чтобы была доступна их память?


Вроде верно - здесь "вроде" потому что, к сожалению, в настоящий момент у меня нет под рукой hardware чтобы все проверить.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Nov 23 2009, 19:28
Сообщение #9


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Что-то неверно. Все равно вылетаю в hardfault. В начале маина соответствующие биты все равно в нуле (PCONP_PCENET_BIT и PCONP_PCUSB_BIT). Если пытаться их установить в мэйне - тоже hardfault. Непонятно. Еще и обертка на hardfault вылетает в hardfault. Что-то я запутался, короче. smile.gif


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
yuri_t
сообщение Nov 25 2009, 07:55
Сообщение #10


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

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



Вот рабочий проект для LPC17xx и CrossWorks 1.7 c использованием AHB RAM
Прикрепленные файлы
Прикрепленный файл  test_AHB_RAM.zip ( 72.32 килобайт ) Кол-во скачиваний: 427
 
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Nov 25 2009, 10:01
Сообщение #11


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Спасибо!


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 01:56
Рейтинг@Mail.ru


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