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

 
 
> asm исходники для отладочной платы str912-sk, где взять?
s868
сообщение Dec 28 2007, 10:21
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 28-12-07
Пользователь №: 33 700



Доброго времени суток и с наступающими праздниками.
Прошу по возможности оказать содействие в следующей проблеме. Приобретена отладочная плата str912-sk (на основе процессора STR912FA W44X6), софт IAR Embedded Workbench 4.0. после включения все вроде работает, удается запускать исходники, идущие в комплекте к софту и проделывающие на плате разные трюки - от простого вывода на порт светодиодов до примеров работы с остальной периферией.
но вся беда в том что они написаны на СИ, а на ассемблере нету ни одного. Если кто имел дело с такой платой - прошу поделиться кусками написанных прогамм, а то ведь вообще ппц - начинать не с чего, негде взять образец ЛЮБОЙ работающей программы на ассм, чтобы увидеть как там заголовок идет и чем кончается))).
Интересует простейшая программа - выдача в бесконечном цикле инкремента байта в порт GPIO3 (там светодиоды).
Спасибо за внимание.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Dec 28 2007, 16:49
Сообщение #2


Гуру
******

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



Цитата(s868 @ Dec 28 2007, 12:21) *
..но вся беда в том что они написаны на СИ, а на ассемблере нету ни одного.

Можете начинать писать на 'C'. Пора. Заниматься писанием на ASM чего-либо функционально законченного для такого уровня контроллеров, очень мягко говоря, неразумно. Кусочек о пару десятков-сот команд оптимизированный ручками это нормально, но это потом.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
s868
сообщение Jan 14 2008, 08:23
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 28-12-07
Пользователь №: 33 700



спасибо за ответы) значит будем потихоньку переходить на С
возник еще вопрос: на STR912 пытаюсь настроить GPIO3 на вывод и прописать в него константу, для этого был создан следующий шэдэвр

NAME main
PUBLIC main
COMMON INTVEC:CODE
CODE32
B main
RSEG ICODE:CODE

mdd1 dc32 0x4c002050 //(адрес регистра SCU_GPIOOUT3)
mdd2 dc32 0x48009400 //(адрес регистра GPIO_DIR)
mdd3 dc32 0x480093fc //(адрес GPIO_DATA, в котором задана маска 11111111)


CODE32

main nop
nop
nop
nop

//GPIO data direction register ( 1: Output)

ldr r0,mdd2
mov r1,#0xff
strb r1,[r0]
nop

//GPIO output register (SCU_GPIOOUTn) set 01: Alternate Output 1 (general purpose output)

ldr r0,mdd1
mov r1, #0x55
strb r1,[r0]
strb r1,[r0,#1]



//GPIO data register (GPIO_DATA)


ldr r0,mdd3
mov r1, #0x0f
strb r1,[r0]

main1
B main1
END main

в общем он не работает(((
по даташиту описана процедура настройки порта на вывод: нужно настроить порт на вывод, определить Alternate Function 1 (output from GPIO_DATA register) и собственно послать выводимый байт по адресу, биты 9:2 которого содержат маску.
это и проделано в программе. что не так?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 14 2008, 11:31
Сообщение #4


Гуру
******

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



Цитата(s868 @ Jan 14 2008, 10:23) *
что не так?
В используемом вами пакете есть симулятор (иконка с зеленой лупой). Вы можете самостоятельно пройти ваш код по шагам и в соответствующих окнах (View->Register) увидеть - в какие регистры что записывает ваша программа. Дальше медитировать над исходным текстом, если пишется не то или не туда.
По вашему словесному описанию:
Код
#include <iostr912.h>
int main()
{
    SCU_GPIOOUT3 = 0x5555;  // I/O
    GPIO3_DIR = 0xFF;   // output
    GPIO3_DATA = 0x0F;   // write constant
    for(;;)
       ;
}
Сравнивайте сложноcть исходного текста biggrin.gif
Если будете продолжать на ассемблере - включите в начале исходника заголовочный файл iostr912.h, в нем описаны имена всех регистров.


--------------------
На любой вопрос даю любой ответ
"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
s868
сообщение Jan 14 2008, 12:28
Сообщение #5





Группа: Участник
Сообщений: 14
Регистрация: 28-12-07
Пользователь №: 33 700



Сэр Сергей Борщ, благодарю за советы. К сожелению написаный фрагмент тоже не работает нужным образом( судя по всему алгоритм инициализации порта неправильный((
вроде все делается согласно даташиту, но порт на вывод не удается настроить
Go to the top of the page
 
+Quote Post



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

 


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


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