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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Startup file для LPC2300/LPC2400
серый волк
сообщение Sep 4 2007, 14:54
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 32
Регистрация: 29-08-07
Пользователь №: 30 125



Скажите пож-та,

существует ли какое-нибудь описание этого файла с более подробными объяснениями
чем комментарии , имеющимися в самом файле.

Спасибо
Go to the top of the page
 
+Quote Post
alexander55
сообщение Sep 5 2007, 05:42
Сообщение #2


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(серый волк @ Sep 4 2007, 18:54) *
Скажите пож-та,

существует ли какое-нибудь описание этого файла с более подробными объяснениями
чем комментарии , имеющимися в самом файле.

Спасибо

Ну вроде и так все понятно.
Иницмализация МАМ (для LPC);
инициализация вершин стека для всех режимов ARM;
инициализация сопроцессора, если он есть;
можно чего-нибудь добавить свое, если приспичит;
переход на main.
Пройдите по шагам и все станет ясно. Главное, для Linker указать корректную информацию. Обратите внимание, как можно все поместить в RAM, чтобы не уменьшать ресурсы перепрограммирования Flash.
Go to the top of the page
 
+Quote Post
серый волк
сообщение Sep 5 2007, 08:26
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 32
Регистрация: 29-08-07
Пользователь №: 30 125



спасибо



только тогда посоветуйте где взять информацию по описанию
ассемблерных вставок типа:
AREA HEAP, NOINIT, READWRITE, ALIGN=3

короче по синтаксису , используемому в этом файле

Сообщение отредактировал серый волк - Sep 5 2007, 08:24
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 5 2007, 08:39
Сообщение #4


Гуру
******

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



Цитата(серый волк @ Sep 5 2007, 11:26) *
короче по синтаксису , используемому в этом файле

Как ни удивительно в описании Assembler smile.gif ибо все это совершенно обычный ASM исходник.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
серый волк
сообщение Sep 5 2007, 09:05
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 32
Регистрация: 29-08-07
Пользователь №: 30 125



извините конечно,

но может кто посоветовать конкретный файл, который
я могу считать и получить необходимую мне информацию?

спасибо
Go to the top of the page
 
+Quote Post
серый волк
сообщение Sep 5 2007, 15:06
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 32
Регистрация: 29-08-07
Пользователь №: 30 125



Тема со Startup на ARMe для меня новая, прошу извинить за
такие вопросы....

например из док-ии по асму и компилятору не ясно:
1.что представляет запись Stack_Top(можно конечно догадываться, но точного описания я не нашел)
2.Тоже самое смысл записей в коде __heap_base и __heap_limit . Что это такое в описании правда имеется.

Спасибо


AREA STACK, NOINIT, READWRITE, ALIGN=3

Stack_Mem SPACE USR_Stack_Size
__initial_sp SPACE ISR_Stack_Size

Stack_Top


;// <h> Heap Configuration
;// <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF>
;// </h>

Heap_Size EQU 0x00000000

AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit
Go to the top of the page
 
+Quote Post
bodja74
сообщение Sep 5 2007, 16:24
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Все это или диррективы компиллятору или константы которыми оперируют эти же диррективы,но разве что только Stack_Top: - это метка (если двоетчие стоит) ,собственно к самому асму это отношение имеет слабое ,такие конструкции делаются в основном для некой автоматизации настроек (тоесть при тех или иных условиях ,добавить\убрать команды или изменить константы) тоесть типа для Визарда.
Лучше с этим не заморачиваться ,так как все уже "заточено" под готовый визард.
Максимум что править нужно,так это вектора,остальное в настройках визарда можно сделать.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 5 2007, 18:11
Сообщение #8


Гуру
******

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



Цитата(bodja74 @ Sep 5 2007, 19:24) *
Все это или диррективы компиллятору

Компиляторы к асемблерному тексту никак не относятся и уж, как минимум, по этой причине ничего не требуют.
Цитата
собственно к самому асму это отношение имеет слабое

Отнюдь.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
bodja74
сообщение Sep 5 2007, 19:02
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(zltigo @ Sep 5 2007, 21:11) *
Компиляторы к асемблерному тексту никак не относятся и уж, как минимум, по этой причине ничего не требуют.

Здрасте ,а это как по вашему что,к примеру в том же стартапе.
Код
$IF (EXTMEM_MODE)
                LDR     R0, =PINSEL2
                LDR     R1, =PINSEL2_Val
                STR     R1, [R0]
$ENDIF


И как можно никак не относиться,не компиллировать код стартапа?
Цитата
Отнюдь.


Согласен,я имел ввиду ,что нужно для себя разделять собственно команды асма и директивы.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 6 2007, 04:47
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(bodja74 @ Sep 5 2007, 22:02) *
Здрасте ,а это как по вашему что,к примеру в том же стартапе.
Вы свалили в кучу Ассемблер, Компилятор и Препроцессор. Ассемблер - это название программы, которая переводит исходный текст, написанный на языке ассемблера, т.е. на его языке в объектный код. Перед ассемблированием исходник проходит через препроцессор, который обрабатывает всякие $IF. А компилятор переводит в объектный код (реже в ассемблерный исходник) исходный текст с языка высокого уровня, коим язык ассемблера не является. Перед компилированием исходный текст также проходит через (возможно другой) препроцессор. Для краткости язык ассемблера называют ассемблером, как и программу.

P.S. после поста alexander55 поправлю - "Вы свалили в кучу понятия Ассемблера, Компилятора и Препроцессора, на что и указал (в своеобразной форме) zltigo"

А __heap_base, __heap_limit очень похожи на простые метки, которые скорее всего можно использовать в других файлах для получения адреса начала и конца кучи. То же и StackTop


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
alexander55
сообщение Sep 6 2007, 05:10
Сообщение #11


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(Сергей Борщ @ Sep 6 2007, 08:47) *
Вы свалили в кучу Ассемблер

Согласен. Пусть кто-нибудь откроет тему типа Ассемблер ARM (топик в идеале должен быть типа FAQ по теме).
Go to the top of the page
 
+Quote Post
bodja74
сообщение Sep 6 2007, 07:30
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(Сергей Борщ @ Sep 6 2007, 07:47) *
Вы свалили в кучу Ассемблер, Компилятор и Препроцессор.

Я неплохо знаю что такое Ассемблер, Компилятор и Препроцессор.Если вы считаете ,что я запутался и свалил все в кучу.Ответте тогда мне на тот же вопрос ,что в этих строчках относиться к Ассемблеру, Компилятору и Препроцессору.smile.gif Возможно я для себя узнаю что то новое.smile.gif
Код
$IF (EXTMEM_MODE)
                LDR     R0, =PINSEL2
                LDR     R1, =PINSEL2_Val
                STR     R1, [R0]
$ENDIF


Цитата
Ассемблер - это название программы, которая переводит исходный текст, написанный на языке ассемблера, т.е. на его языке в объектный код.

Начнем с того ,что Ассемблер- это язык программиирования,такой же язык как Си,Бейсик,Паскаль.
Если ктото написал программу и назвал ее Ассемблером - это уже его проблемы.Кстати я ни разу не видел обьектного кода Ассемблера - там нечему "обьектиться" smile.gif ,на Си ,Бейсике - видел.
Цитата
Перед ассемблированием исходник проходит через препроцессор, который обрабатывает всякие $IF. А компилятор переводит в объектный код (реже в ассемблерный исходник) исходный текст с языка высокого уровня, коим язык ассемблера не является.

Эсли это называется ассемблированием - пускай будет,это делается с языками высокого уровня ,хорошо.

Цитата
Перед компилированием исходный текст также проходит через (возможно другой) препроцессор.

Вот,высокий язык переводиться в асм или обьектный код и тогда ,за работу берется компиллятор(или его вторая половина smile.gif )

Теперь то,что я хотел донести.
С учетом того ,что стартап уже написан на асме - асемблировать там нечего, Вы совершенно верно заметили
"про возможно другой" препроцессор smile.gif,и если еще раскажете что в стартапе делает препроцессор ,а что делают директивы компиллятору,я думаю всем полезно будет почитать.
Цитата
Для краткости язык ассемблера называют ассемблером, как и программу.

Язык да, а вот программу называют - программа НА асме или исходники На асме,как правило smile.gif ,хотя есть и особо ленивые.
Go to the top of the page
 
+Quote Post
серый волк
сообщение Sep 6 2007, 08:08
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 32
Регистрация: 29-08-07
Пользователь №: 30 125



Цитата(Сергей Борщ @ Sep 6 2007, 08:47) *
А __heap_base, __heap_limit очень похожи на простые метки, которые скорее всего можно использовать в других файлах для получения адреса начала и конца кучи. То же и StackTop



да но где они инициализируются адресом?
И смысл их написания в примере ?

спасибо
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 6 2007, 08:19
Сообщение #14


Гуру
******

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



Цитата(bodja74 @ Sep 6 2007, 10:30) *
Теперь то,что я хотел донести.

Спасибо smile.gif "перлов" донесенных ранее, уже вполне достаточно sad.gif. Я конечно, понимаю, что таково Ваше видение мира (типа Земля плоская и покоится на трех китах), но на самом деле Авторы инструментов обустрили мир программированя иначе. Причем в отличие от неведомого Создателя свои мысли и поступки документировали.
Цитата
Кстати я ни разу не видел обьектного кода Ассемблера - там нечему "обьектиться"

Ну а с этоим могу помочь, этого у нас завались - не жалко. Cмотрите в приложении.
Прикрепленные файлы
Прикрепленный файл  CSTARTUP.rar ( 552 байт ) Кол-во скачиваний: 91
 


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
серый волк
сообщение Sep 6 2007, 12:36
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 32
Регистрация: 29-08-07
Пользователь №: 30 125



Дискуссия очень быстро как я понял ушла от конкретного вопроса ,поставленного в теме.
Ну ладно...и на том спасибо sad.gif
Go to the top of the page
 
+Quote Post

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

 


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


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