|
Startup file для LPC2300/LPC2400 |
|
|
|
Sep 5 2007, 05:42
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(серый волк @ Sep 4 2007, 18:54)  Скажите пож-та,
существует ли какое-нибудь описание этого файла с более подробными объяснениями чем комментарии , имеющимися в самом файле.
Спасибо Ну вроде и так все понятно. Иницмализация МАМ (для LPC); инициализация вершин стека для всех режимов ARM; инициализация сопроцессора, если он есть; можно чего-нибудь добавить свое, если приспичит; переход на main. Пройдите по шагам и все станет ясно. Главное, для Linker указать корректную информацию. Обратите внимание, как можно все поместить в RAM, чтобы не уменьшать ресурсы перепрограммирования Flash.
|
|
|
|
|
Sep 5 2007, 18:11
|

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

|
Цитата(bodja74 @ Sep 5 2007, 19:24)  Все это или диррективы компиллятору Компиляторы к асемблерному тексту никак не относятся и уж, как минимум, по этой причине ничего не требуют. Цитата собственно к самому асму это отношение имеет слабое Отнюдь.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 5 2007, 19:02
|
Знающий
   
Группа: Свой
Сообщений: 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 И как можно никак не относиться,не компиллировать код стартапа? Цитата Отнюдь. Согласен,я имел ввиду ,что нужно для себя разделять собственно команды асма и директивы.
|
|
|
|
|
Sep 6 2007, 04:47
|

Гуру
     
Группа: Модераторы
Сообщений: 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)
|
|
|
|
|
Sep 6 2007, 07:30
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(Сергей Борщ @ Sep 6 2007, 07:47)  Вы свалили в кучу Ассемблер, Компилятор и Препроцессор. Я неплохо знаю что такое Ассемблер, Компилятор и Препроцессор.Если вы считаете ,что я запутался и свалил все в кучу.Ответте тогда мне на тот же вопрос ,что в этих строчках относиться к Ассемблеру, Компилятору и Препроцессору.  Возможно я для себя узнаю что то новое.  Код $IF (EXTMEM_MODE) LDR R0, =PINSEL2 LDR R1, =PINSEL2_Val STR R1, [R0] $ENDIF Цитата Ассемблер - это название программы, которая переводит исходный текст, написанный на языке ассемблера, т.е. на его языке в объектный код. Начнем с того ,что Ассемблер- это язык программиирования,такой же язык как Си,Бейсик,Паскаль. Если ктото написал программу и назвал ее Ассемблером - это уже его проблемы.Кстати я ни разу не видел обьектного кода Ассемблера - там нечему "обьектиться"  ,на Си ,Бейсике - видел. Цитата Перед ассемблированием исходник проходит через препроцессор, который обрабатывает всякие $IF. А компилятор переводит в объектный код (реже в ассемблерный исходник) исходный текст с языка высокого уровня, коим язык ассемблера не является. Эсли это называется ассемблированием - пускай будет,это делается с языками высокого уровня ,хорошо. Цитата Перед компилированием исходный текст также проходит через (возможно другой) препроцессор. Вот,высокий язык переводиться в асм или обьектный код и тогда ,за работу берется компиллятор(или его вторая половина  ) Теперь то,что я хотел донести. С учетом того ,что стартап уже написан на асме - асемблировать там нечего, Вы совершенно верно заметили "про возможно другой" препроцессор  ,и если еще раскажете что в стартапе делает препроцессор ,а что делают директивы компиллятору,я думаю всем полезно будет почитать. Цитата Для краткости язык ассемблера называют ассемблером, как и программу. Язык да, а вот программу называют - программа НА асме или исходники На асме,как правило  ,хотя есть и особо ленивые.
|
|
|
|
|
Sep 6 2007, 08:08
|

Участник

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

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

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

|
Цитата(bodja74 @ Sep 6 2007, 10:30)  Теперь то,что я хотел донести. Спасибо  "перлов" донесенных ранее, уже вполне достаточно  . Я конечно, понимаю, что таково Ваше видение мира (типа Земля плоская и покоится на трех китах), но на самом деле Авторы инструментов обустрили мир программированя иначе. Причем в отличие от неведомого Создателя свои мысли и поступки документировали. Цитата Кстати я ни разу не видел обьектного кода Ассемблера - там нечему "обьектиться" Ну а с этоим могу помочь, этого у нас завались - не жалко. Cмотрите в приложении.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|