Перейти к содержанию
    

Если бы это был Keil, то я бы так и написал. Это добро из комплекта RVDS.

Да, а чей это там логотипчик на

http://www.keil.com/support/man/docs/armcc/armcc_pr01.htm

затесался :) Да и сам сайт Keil. Все смешалось в доме Облонских..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, а чей это там логотипчик на

http://www.keil.com/support/man/docs/armcc/armcc_pr01.htm

затесался :) Да и сам сайт Keil. Все смешалось в доме Облонских..

Ну и что? RealView Developer Suite и входящие в его состав RealView Compilation Tools - разработка именно ARM, Keil-то тут причем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2zltigo, А есть где-нибудь просторах интернета исходники какого-нибудь проекта написанного не-"студенчески"?

Хочу проанализировать для общеобразовательных целей.

 

Держите. Надеюь, из состояния писанины "студенческих" исходников я уже вырос... Хотя, возможны недоработки в плане структуры программы.

Между прочим, как раз пример того, как я переходил с AVR (ATMega32) на ARM (AT91SAM7S64).

 

Тема здесь - http://forum.cqham.ru/viewtopic.php?t=17803

 

Для сборки ARM версии используется YAGARTO, для AVR - WinAVR.

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Keil-то тут причем?

При том,что на сегодняшний день Keil это подразделение ARM занимающееся всеми компиляторами принадлежащими ARM Company.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При том,что на сегодняшний день Keil это подразделение ARM занимающееся всеми компиляторами принадлежащими ARM Company.

Так таки и всеми?

 

Keil делал и делает (да, теперь в составе ARM) только MDK - "попсовую" среду, ориентированную на МК, ради которой он и был куплен.

RVDS же существовал и существует как отдельный продукт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если бы это был Keil, то я бы так и написал. Это добро из комплекта RVDS.

смотрим на тот-же файл из поставки Keil:

;/*****************************************************************************/
;/* SWI.S: SWI Handler                                                        */
;/*****************************************************************************/
;/* This file is part of the uVision/ARM development tools.                   */
;/* Copyright © 2005-2006 Keil Software. All rights reserved.               */
;/* This software may only be used under the terms of a valid, current,       */
;/* end user licence from KEIL for a compatible version of KEIL software      */
;/* development tools. Nothing else gives you the right to use this software. */
;/*****************************************************************************/

T_Bit           EQU     0x20

               PRESERVE8                      ; 8-Byte aligned Stack
               AREA    SWI_Area, CODE, READONLY
               ARM

               EXPORT  SWI_Handler
SWI_Handler   

               STMFD   SP!, {R12, LR}         ; Store R12, LR
               MRS     R12, SPSR              ; Get SPSR
               STMFD   SP!, {R8, R12}         ; Store R8, SPSR
               TST     R12, #T_Bit            ; Check Thumb Bit
               LDRNEH  R12, [LR,#-2]          ; Thumb: Load Halfword
               BICNE   R12, R12, #0xFF00      ;        Extract SWI Number
               LDREQ   R12, [LR,#-4]          ; ARM:   Load Word
               BICEQ   R12, R12, #0xFF000000  ;        Extract SWI Number

               LDR     R8, SWI_Count
               CMP     R12, R8
               BHS     SWI_Dead               ; Overflow
               ADR     R8, SWI_Table
               LDR     R12, [R8,R12,LSL #2]   ; Load SWI Function Address
               MOV     LR, PC                 ; Return Address
               BX      R12                    ; Call SWI Function 

               LDMFD   SP!, {R8, R12}         ; Load R8, SPSR
               MSR     SPSR_cxsf, R12         ; Set SPSR
               LDMFD   SP!, {R12, PC}^        ; Restore R12 and Return

SWI_Dead        B       SWI_Dead               ; None Existing SWI

SWI_Cnt         EQU    (SWI_End-SWI_Table)/4
SWI_Count       DCD     SWI_Cnt

               IMPORT  __SWI_0
               IMPORT  __SWI_1
               IMPORT  __SWI_2
               IMPORT  __SWI_3
SWI_Table
               DCD     __SWI_0                ; SWI 0 Function Entry
               DCD     __SWI_1                ; SWI 1 Function Entry
               DCD     __SWI_2                ; SWI 2 Function Entry
               DCD     __SWI_3                ; SWI 3 Function Entry
;               ...
SWI_End


               END

 

Главные отличия в свежих годах Copyright ну и естественно теперь ©Keil. Что-то я совсем не понимаю предмета спора :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то я совсем не понимаю предмета спора :(

А зачем тогда спорите? Просто Keil != ARM и не является компиляторостроителем последнего, а наоборот, использует наработки головной конторы в своем MDK.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Держите. Надеюь, из состояния писанины "студенческих" исходников я уже вырос...

Не :( "студентов" тоже писавших, например, мультиплатформенный TI стек SimpleIT в извращениях превзойти трудно :).

Ну и такого типа фишки:

        if ((baud_value % 10) >= 5)
                baud_value = (baud_value / 10) + 1;
        else
                baud_value /= 10;

Вместо:

baud_value = ( (baud_value + 5) / 10)

Вполне по-студенчески - об округлении уже знают, но с реализацией :(

P.S.

Не принимайте близко к сердцу - выложить исходники в качестве образца, это не подвиг, но что-то героическое в этом есть! Мне такое не по силам, обычно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

такого типа фишки

Это пять :)

 

...выложить исходники в качестве образца, это не подвиг, но что-то героическое в этом есть! Мне такое не по силам, обычно.

Угу. Иногда хочется что-то выложить, да стыдно. Причесать можно но, лень. А с тем, за что изначально не стыдно, оказывается жалко расставаться.

Вот и остается выкладывать разве что фрагменты в 10 строк максимум.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не принимайте близко к сердцу - выложить исходники в качестве образца, это не подвиг, но что-то героическое в этом есть! Мне такое не по силам, обычно.

 

Ох ничего себе! Честно говоря, этот кусок скопипастил сам знаете откуда...

 

Срочно поправил на

 

        unsigned int baud_value = main_clock / baud_rate;

        return ((baud_value + 8) / 16);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Честно говоря, этот кусок скопипастил сам знаете откуда...

Да, есть такой источник заразы, почему-то трепетно любимый многими.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, есть такой источник заразы, почему-то трепетно любимый многими.

Неужели опять незабвенное светило образования Редькин?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неужели опять незабвенный Редькин?

Нет, но все равно смешно - "либы" от Атмела.

 

Справедливости ради надо заметить, что большинство не напрягает себя copy-paste (что дает некоторой шанс увидеть и исправить маразм), а просто не задумываясь кидает "lib_AT91XXX.h" в проект.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если бы вы, как внимательные читатели, не обратили внимание на этот кусок, так бы оно и неслось по волнам истории, не опускаясь на дно...

 

короче, чтобы закончить жизнь этого наследия, пишу так:

const unsigned int divisor = baud_rate * 16;

return (main_clock + divisor / 2) / divisor;

 

Интересно, поможет ли начать программировать под ARM это кому-нибудь?

 

Прочитал про копи-пэйст. Поскольку осваивать пришлось весьма спешно, специально начал с минимального файла (единственный main и последовательность кода для ножкодрыгательства), без использования этого набора функций от атмела. Через некоторое время стала понятна идеология разработчиков периферии, уже знал что и где искать в даташите.

Startup сначала был от yagarto, потом слегка переделывал.

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость Br.Misha

Хай!

Я купил себе три STM32: две STM32F100C8T6B и еще одну какую то за 8 баксов. Завтра еще закажу стм32дискавери.

У меня теперь возник вопрос на счет софта. В инете советовали Keil, скачал, начал юзать. Очень понравилось то, что через визард(STM32_Init.c) можно настроить периферию. Но тут есть 2 очень серьезный как для меня недостатка: Не отображаются подсказки после -> или точки и нельзя кликнув на функцию перейти к ней (кто юзает еклипс, тот поймет). Слышал что в эклипсе можно и для стм32 программить, но можно ли в нем использовать визард как в кейле?

Ну или может есть какая то другая прога, посоветуйте плиз!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...