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

Ken@t

Свой
  • Постов

    146
  • Зарегистрирован

  • Посещение

Весь контент Ken@t


  1. точно такиеже действия как и инициализация EMC контроллера в коде , тоесть запись определённых слов в память . типа write32(MEMADDR,VALUE) посмотрите руководство на GDB
  2. И так докладываю, Реализован USB хост стэк OOП , в настоящее время работает без операционки, будет порт для uCos-II. Написаны драйвера для HUB (virtual root hub), клавиатуры. В ближайших планах по приоритетам. 1. USB Web camera 2. Bluetooth Ввиду медленной записи в USB Flash по сравнению с MMC дрова писать нет смысла, хотя... Теперь вопрос, так как разработчиков систем много , причём системы разные , прошу дать информацию о том какие девайсы USB вы использовали бы в своих изделия. Замечу, что тащить на RM9200 полноценный линух чаще не оправдано. С уважением.
  3. А зачем собственно IDE мутить да на PIO ? Ведь USB OHCI в наличии ? как минимум не заморачиваясь особыми сложностями, достаточна реализвация OHCI и MassStorage. Ведь в любом слоучай файловый доступ писать . Кстати реализация USB Host + MassStorge займёт ,при наличии головы , месяц. а это лог подключения мультимедийной клавы с встроенным концентратором к рм9200 -I- USB STACK TEST Build Nov 6 2006 18:09:14 -I- CPU 199987 KHz -I- PCK 99993 KHz -I- PLLB 95993 KHz -I- 7/11/06 21:48:06 OHCI Revision 1.0 (10) OHCI controller state control: 0x000000bf HCFS=operational BLE CLE IE PLE CBSR=3 cmdstatus: 0x00000000 SOC=0 UHP_HcInterruptStatus: 0x00000020 FNO UHP_HcInterruptEnable: 0x80000057 MIE RHSC UE SF WDH SO UHP_HcInterruptDisable: 0x80000057 MIE RHSC UE SF WDH SO hcca frame #ADFD -I Installed HID driver -I Installed Generic Hub driver -D- UI > -I- Port 0. Fast device attached -D- Assign DeviceNum = 1 -D- Reset port complite -I- Setup address 1 -D- Added Pure device -I- USBDevice::Attached -I- malloc IF 200711cc, numif 1 -I- New device strings: Mfr=1, Product=2, SerialNumber=0 Length = 18 DescriptorType = 01 USB version = 1.10 Vendor:Product = 099a:800b MaxPacketSize0 = 8 NumConfigurations = 1 Device version = 1.02 Device Class:SubClass:Protocol = 09:01:00 Hub device class Configuration: bLength = 9 bDescriptorType = 02 wTotalLength = 0019 bNumInterfaces = 01 bConfigurationValue = 01 iConfiguration = 00 bmAttributes = a0 MaxPower = 98mA Interface: 0 Alternate Setting: 0 bLength = 9 bDescriptorType = 04 bInterfaceNumber = 00 bAlternateSetting = 00 bNumEndpoints = 01 bInterface Class:SubClass:Protocol = 09:01:00 iInterface = 00 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 81 (in) bmAttributes = 03 (Interrupt) wMaxPacketSize = 0001 bInterval = ff -I- USBBus::FindDrivers -I- USB hub found -I- Hub 3 ports detected -I- HUB Ganged power switching -I- HUB Standalone hub -I- HUB Global over-current protection -I- Power on to power good time: 98ms -I- Hub controller current requirement: 8mA -I- port 1 is removable -I- port 2 is removable -I- port 3 is not removable -I- HUB Local power source is good -I- HUB no over-current condition exists -I- Enabling power on all ports -I- Generic Hub driver claimed interface 200711cc -I- OK -I- HUB port 3 connection change -I- Portstatus 101, change 1, 12 Mb/s -I- portstatus 103, change 10, 12 Mb/s -D- Assign DeviceNum = 2 -I- Setup address 2 -D- Added Pure device -I- USBDevice::Attached -I- malloc IF 200713b4, numif 2 -I- Skipped 1 class/vendor specific interface descriptors -I- Skipped 1 class/vendor specific interface descriptors -I- New device strings: Mfr=1, Product=2, SerialNumber=0 Length = 18 DescriptorType = 01 USB version = 1.10 Vendor:Product = 099a:610a MaxPacketSize0 = 8 NumConfigurations = 1 Device version = 0.01 Device Class:SubClass:Protocol = 00:00:00 Per-interface classes Configuration: bLength = 9 bDescriptorType = 02 wTotalLength = 003b bNumInterfaces = 02 bConfigurationValue = 01 iConfiguration = 04 bmAttributes = a0 MaxPower = 0mA Interface: 0 Alternate Setting: 0 bLength = 9 bDescriptorType = 04 bInterfaceNumber = 00 bAlternateSetting = 00 bNumEndpoints = 01 bInterface Class:SubClass:Protocol = 03:01:01 iInterface = 00 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 81 (in) bmAttributes = 03 (Interrupt) wMaxPacketSize = 0008 bInterval = 0a Interface: 1 Alternate Setting: 0 bLength = 9 bDescriptorType = 04 bInterfaceNumber = 01 bAlternateSetting = 00 bNumEndpoints = 01 bInterface Class:SubClass:Protocol = 03:01:02 iInterface = 00 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 82 (in) bmAttributes = 03 (Interrupt) wMaxPacketSize = 0004 bInterval = 0a -I- USBBus::FindDrivers -D- HID probe called for ifnum 0 -I- USB device number 2 default language ID 0x409 -D- HID Multimedia Hub Keyboard Application(GenericDesktop.Keyboard) INPUT[INPUT] Field(0) Usage(8) Keyboard.00e0 Keyboard.00e1 Keyboard.00e2 Keyboard.00e3 Keyboard.00e4 Keyboard.00e5 Keyboard.00e6 Keyboard.00e7 Logical Minimum(0) Logical Maximum(1) Report Size(1) Report Count(8) Report Offset(0) Flags( Variable Absolute ) Field(1) Usage(256) Keyboard.0000 Keyboard.0001 Keyboard.0002 Keyboard.0003 Keyboard.0004 Keyboard.0005 Keyboard.0006 Keyboard.0007 Keyboard.0008 Keyboard.0009 Keyboard.000a Keyboard.000b Keyboard.000c Keyboard.000d Keyboard.000e Keyboard.000f Keyboard.0010 Keyboard.0011 Keyboard.0012 Keyboard.0013 Keyboard.0014 Keyboard.0015 Keyboard.0016 Keyboard.0017 Keyboard.0018 Keyboard.0019 Keyboard.001a Keyboard.001b Keyboard.001c Keyboard.001d Keyboard.001e Keyboard.001f Keyboard.0020 Keyboard.0021 Keyboard.0022 Keyboard.0023 Keyboard.0024 Keyboard.0025 Keyboard.0026 Keyboard.0027 Keyboard.0028 Keyboard.0029 Keyboard.002a Keyboard.002b Keyboard.002c Keyboard.002d Keyboard.002e Keyboard.002f Keyboard.0030 Keyboard.0031 Keyboard.0032 Keyboard.0033 Keyboard.0034 Keyboard.0035 Keyboard.0036 Keyboard.0037 Keyboard.0038 Keyboard.0039 Keyboard.003a Keyboard.003b Keyboard.003c Keyboard.003d Keyboard.003e Keyboard.003f Keyboard.0040 Keyboard.0041 Keyboard.0042 Keyboard.0043 Keyboard.0044 Keyboard.0045 Keyboard.0046 Keyboard.0047 Keyboard.0048 Keyboard.0049 Keyboard.004a Keyboard.004b Keyboard.004c Keyboard.004d Keyboard.004e Keyboard.004f Keyboard.0050 Keyboard.0051 Keyboard.0052 Keyboard.0053 Keyboard.0054 Keyboard.0055 Keyboard.0056 Keyboard.0057 Keyboard.0058 Keyboard.0059 Keyboard.005a Keyboard.005b Keyboard.005c Keyboard.005d Keyboard.005e Keyboard.005f Keyboard.0060 Keyboard.0061 Keyboard.0062 Keyboard.0063 Keyboard.0064 Keyboard.0065 Keyboard.0066 Keyboard.0067 Keyboard.0068 Keyboard.0069 Keyboard.006a Keyboard.006b Keyboard.006c Keyboard.006d Keyboard.006e Keyboard.006f Keyboard.0070 Keyboard.0071 Keyboard.0072 Keyboard.0073 Keyboard.0074 Keyboard.0075 Keyboard.0076 Keyboard.0077 Keyboard.0078 Keyboard.0079 Keyboard.007a Keyboard.007b Keyboard.007c Keyboard.007d Keyboard.007e Keyboard.007f Keyboard.0080 Keyboard.0081 Keyboard.0082 Keyboard.0083 Keyboard.0084 Keyboard.0085 Keyboard.0086 Keyboard.0087 Keyboard.0088 Keyboard.0089 Keyboard.008a Keyboard.008b Keyboard.008c Keyboard.008d Keyboard.008e Keyboard.008f Keyboard.0090 Keyboard.0091 Keyboard.0092 Keyboard.0093 Keyboard.0094 Keyboard.0095 Keyboard.0096 Keyboard.0097 Keyboard.0098 Keyboard.0099 Keyboard.009a Keyboard.009b Keyboard.009c Keyboard.009d Keyboard.009e Keyboard.009f Keyboard.00a0 Keyboard.00a1 Keyboard.00a2 Keyboard.00a3 Keyboard.00a4 Keyboard.00a5 Keyboard.00a6 Keyboard.00a7 Keyboard.00a8 Keyboard.00a9 Keyboard.00aa Keyboard.00ab Keyboard.00ac Keyboard.00ad Keyboard.00ae Keyboard.00af Keyboard.00b0 Keyboard.00b1 Keyboard.00b2 Keyboard.00b3 Keyboard.00b4 Keyboard.00b5 Keyboard.00b6 Keyboard.00b7 Keyboard.00b8 Keyboard.00b9 Keyboard.00ba Keyboard.00bb Keyboard.00bc Keyboard.00bd Keyboard.00be Keyboard.00bf Keyboard.00c0 Keyboard.00c1 Keyboard.00c2 Keyboard.00c3 Keyboard.00c4 Keyboard.00c5 Keyboard.00c6 Keyboard.00c7 Keyboard.00c8 Keyboard.00c9 Keyboard.00ca Keyboard.00cb Keyboard.00cc Keyboard.00cd Keyboard.00ce Keyboard.00cf Keyboard.00d0 Keyboard.00d1 Keyboard.00d2 Keyboard.00d3 Keyboard.00d4 Keyboard.00d5 Keyboard.00d6 Keyboard.00d7 Keyboard.00d8 Keyboard.00d9 Keyboard.00da Keyboard.00db Keyboard.00dc Keyboard.00dd Keyboard.00de Keyboard.00df Keyboard.00e0 Keyboard.00e1 Keyboard.00e2 Keyboard.00e3 Keyboard.00e4 Keyboard.00e5 Keyboard.00e6 Keyboard.00e7 Keyboard.00e8 Keyboard.00e9 Keyboard.00ea Keyboard.00eb Keyboard.00ec Keyboard.00ed Keyboard.00ee Keyboard.00ef Keyboard.00f0 Keyboard.00f1 Keyboard.00f2 Keyboard.00f3 Keyboard.00f4 Keyboard.00f5 Keyboard.00f6 Keyboard.00f7 Keyboard.00f8 Keyboard.00f9 Keyboard.00fa Keyboard.00fb Keyboard.00fc Keyboard.00fd Keyboard.00fe Keyboard.00ff Logical Minimum(0) Logical Maximum(255) Report Size(8) Report Count(6) Report Offset(16) Flags( Array Absolute ) OUTPUT[OUTPUT] Field(0) Usage(3) LED.0001 LED.0002 LED.0003 Logical Minimum(0) Logical Maximum(1) Report Size(1) Report Count(3) Report Offset(0) Flags( Variable Absolute ) -D- Getting report type 1 id 0 len 8 -D- hid_irq: report (size 8) (unnumbered) = 00 00 00 00 00 00 00 00 -I- input0: USB HID v1.00 Keyboard [ Multimedia Hub Keyboard ] -I- HID driver claimed interface 200713b4 -D- HID probe called for ifnum 1 -D- HID Multimedia Hub Keyboard Application(GenericDesktop.SystemControl) INPUT(1)[INPUT] Field(0) Usage(3) GenericDesktop.SystemPowerDown GenericDesktop.SystemSleep GenericDesktop.SystemWakeUp Logical Minimum(0) Logical Maximum(1) Report Size(1) Report Count(3) Report Offset(0) Flags( Variable Absolute ) -D- Getting report type 1 id 1 len 1 -D- hid_irq: report (size 1) (numbered) = 01 -D- report 1 is too short, (0 < 1) -I- input0: USB HID v1.00 Device [ Multimedia Hub Keyboard ] -I- HID driver claimed interface 200713cc -I- OK
  4. ARM for MP3

    Странные мысли у Вас :blink: . Не думал что этот форум для обсуждения кому и чем лучше заняться :cranky: -- Вниматочно читаем , что я написал. Вопрос в целесообразности изготовления. Знаю про такую, но у неё там корпус BGA как такую платку дома сваять? ни как, только на заказ плату, если шаг 1.0 можно и 3тиё - 4й класс ПП двухслойную, если 0.5 или 0.8 то только пятый + готовь 30$ за запайку ROHS BGA
  5. ARM for MP3

    всё можно, только зачем ? конечный продукт явно стоить будет больше существующих плееров ))) если для сеебя , а оно надо ? может лучше сходить с девушкой/женой/ребёнком в кино /театр/ выставку, а не сэксом с железкой заниматься ?
  6. О , добрался до Москвы. здесь холодно и не уютно... Решил побаловать губителей АРМов... Загрузчиком во флэш стартапного кода. И так прикладываю два проекта IAR fLoader записывает бинарный образ во флэш. применён механизм линковки бинарного файла ( см закладку Extra Options в линкере) и сам проект первичного загрузчика , который инициализирует sdram, pll пытается считать из флэша заголовок образа, если заголовок правильный , то загружает, иначе активно моргает светодиодом. вторичный лодырь Сначала компилите fBoot , смотрите JTAG как идёт процесс. Затем собираете релиз. Бинарник релиза в дальнейшем будет записан во флэш. В fBoot файл at91_cstartup.s79 FlashInfo DC32 ((1056 << 17) | ( 13 << 13 ) | 6) ; 1056 - размер страницы флэша 13 - 2^13 = 8096 количество страниц в флэше 6 - 6 * 512 = 3072 байт грузится в RAM, что немного больше самого кода 2696 байт это придётся ручками для ленивых прописать или макросами в автомате. Кстати в fLoader нужно указать размерчик ручками или создать именованный сегмент в xcl. а так в планах ... BSP CE50 ...
  7. В флэше сохранять в бинарном образе. в загрузчике сделать хедер типа int LoadAddr; // адрес загрузки int ImageSize; // размер образа int _prg_main_Addr; // адрес старта. поскольку ваш лодер занимается только перемещением образа из флэша в сдрам (пофиг в какую область ) и запуском его, вам достаточно писать проект как есть ( для sdram ) И отлаживать в среде разаработки. по сути возможен вариант следующего размещения во флэше |***************| | Boot 12K | |---------------| | uMON 240K | |---------------| |OSimage 6M zip | |***************| так поступают и WinCE и линух и VxW , вы можите не делать монитор и грузить флэш начальный загрузчик должен обеспечить 1. Инициализацию PLL 2. Инициализацию перефирии SPI 3. Инициализацию SDRAM и проверить её 4. Обеспечить загрузку с носителя 4.1 SPI 4.2 MMC/SD, но необходима реализация файлового доступа или пользовать RAW формат. Вопросы и действия тривиальны.
  8. ? по JTAG всё шьётся , на раз - два.. хотя проект не плохой.
  9. В москве буду не раньше 8-9 сентября. жди кину
  10. Нет, вы весьма странен, давая такой ответ вы подразумеваете о том , что знаете CE и PlatformBuilder. Если всё это не так, то Вы... не перособрали бы и не сделали бы. Дело в том ,что "образ" зашит в флэше , В ПРИНЦИПЕ если драйвер LCD сборки и поддерживает ВАШ цветной LCD , то параметры надо менять в реестре. А как ВЫ знаете реестр в образе и покорёжить его ни как. Если бы ВЫ понимали как СЕ работате , то попытались изменить параметры в загруженом реестре, потом систему надо рестартовать, а рестрат из флэша есть перезапись рама - кольцо. Ход рассуждений "на пальцах" понятен ? Вам пересобрать образ осталось, собственно вернулись к началу...
  11. АВтор ещё не сказл што за кирпич и тяжкое наследие х86 чествуется , это я о биосе. Первичный бутлоадер + образ системы ... собственно здесь даже и выбора нет по оптимальности... линух, СЕ , VxWork далее со всеми остановками... А гарантированный загрузчик это как повезёт накрыться системе... всё равно пин для загрзчика выводить наружу с кнопкой ресета...
  12. Так ведь ответили Вы себе Сами. Пересобрать образ CE. Для этого берёте PlatformBuilder и с помощью вашего BSP создаёте образ... заливаете и запускаете...
  13. Запись видео + АРМ

    У них же (AD) есть Reference Kit для BF561/533, утверждают наличие MPEG4 и скорую поддержку H.264. Правда стоит 25К USD. Каюсь, ошибся... И так, ближе теме. Перекрёстный анализ показал , что оптимальный путь использовать BF561. 1. Гнутый софт есть + VisualDSP 2. мультимедия СДК есть 3. Чип PBGA шаг 1 углы его на землю, центральный блок - земля и питание, 2ряда всего считаем , шаг 1 - 0.45 под площадку = 0,55 - 0,125 = 0,425 / 2 = 0,2125 зазор , тоесть достаточно для изготовления в резоните для протяжки выводов с , впрочем два ряда , тоже достаточно просто развести в две стороны. 4. Отладчик жтага не дорогой... финансы.. плата 2х слойная ( проц , память , питание , порты наружу ) в 100 - 120 можно уложиться. сам проц 54 + 16 сдрам + 9 флэш + питание и мелочёвка возьму по максимум в 110 приблизительно 220 против 533 Евалюшин кит. под TI сразу упираемся в цену ПП , ~160$ SM510 для CCS ... совсем мало интересно остаётся sam9260 1. Всёже 180MHz против 600 цена собрранной платы будет 2/3 от ADSP . вот такие пироги... а то, тут , получится - не получится... получится да не на ARMе .... По габаритам , а что БГА отменили ?
  14. Запись видео + АРМ

    SAA7114 - кодер собственно на это я и указал автору поста Блэкфин, я не увидил аппаратного ITUR порта на него с уазанными дсп - они позиционируются как ядра для мултимедия и в частности кодеров , на них есть бенчмарки сжатия мпег2 и мпег4 атмел, атмел имеет порт , но в реальности , что на потоке D1 сжатия будет ? 30fps сможет выдать ? догадки одни.. Я вот интересовался в своё время этим напралением , лучше использовать аппаратные кодеры или филипса PNX1500 ))) , а так же корки на фпга... и не нашёл требований к аппаратному оборудованию и ресурсам для сжати мпегом и мжпг.
  15. Доберусь до дому ))) Выложу , не обессуть, но алгоритмы тестирования как такового на адреса/данные - шашечки, змейка и т.д дать не могу - это собственность фирмы, посмотри в инете были спец тесты, пойми правильно. Далее по 10МБ сек поток Я не оптимизировали и НЕ проверял оверхед кода , вполне возможно что где-то ошибаюсь, что-то в операциях не так. Но даже в первом приближении на сохранения слова - 4 байта (не бурст ) мы тратим 6 тактов 100MГц /6 * 4 ~ приблизительно 66 000 000 байт секунда естественно при байтовом обращении производительность падает до 16 666 666
  16. Запись видео + АРМ

    Вы считать умеете ? принципы кодирования ? Для начала оценка 7116 передаёт поток ITUR 601 ( 656 ) с частотй 27МГц уже напряг взять из порта и кинуть в рам, ведь DMA на борту нет, далее надо определить SAV код и сформировать фрейм (Вы не читали даташит 7116 и стандарт 601 НИ РАЗУ ) Гипотетически это реализуется на прерывании и прямой путь к FIQ Допустим справились с одним фрэймом... итого 720х588 4:2:2 дало нам 846720 байт картинки. При такой скорости потока данных проц только и занимается сохранением фрейма. Далее надо сжать картинку на выходе мы можем поиметь MPEG-2 (3 буфера потребуется на кадр для сжатия ) MPEG-4 H.263 MJPEG даже в первом приближении для потока D1 не справится, придётся прореживать до 360х294 как минимум получаем 30fps/3 Итого = 10 fps 1 кадр захватили, во время следующего жмём , в следующий кадр сохраняем данные.... если успли сжать естественно.... да , наверно надо ещё наложение на картинку сделать и место хранения - файловая система, а это ресурсы Смотреть реализации кодеров и оптимизировать для АРМ, да помним в сжатии ядром DCT операции. профили выходных потоков наверно простые . Да и ешшо , прежде чем пИсать вАпросы, неплохобы было провести анализ темы.... АЛьтернатива TMS320DM6442 TMS320DM642 AT91SAM9260 - имеет на борту порт ITU-R 656 4:2:2, производительность не оценивал... 200МГц ядро 100МГц SDRAM... ну тут возможно... далее чтож ВЫ гуляя по филипку не увидили его кодера аппаратного ?
  17. ещё отключить тактовые на перефирию , отключть pll и перейти на пониженную частоту...
  18. Восстанавливаем дримкар, столкнулся с проблемой, дачик топлива не поставляется выполнен в виде керамической пластины с нанесённым резистивным слоем и отводами из ? хз не медь износостойкий материал какой-то (похоже конструктивно на резистор переменный :blink: ), собственно надо сделать ПП 25мм х 30мм однослойную на керамике проводники из износостойкого материала - никель ? возможно толстым слоем. покрытие маска вся конструкция БЕНЗОМАСЛОСТОЙКАЯ ... Цены , предложения велком... PS да для начала одну штучку надо - тестировать будем на износ... очень нагруженный узел..
  19. at91rm9200

    xcl //************************************************************************* // XLINK command file template for EWARM/ICCARM // // Usage: xlink -f lnkarm <your_object_file(s)> // -s <program start label> <C/C++ runtime library> // // $Revision: 1.2 $ //************************************************************************* // The flash loader is loaded into the 2M external RAM avaiable on the -DMEMSTART=0x00000000 -DMEMEND=0x000003FFF //************************************************************************* // In this file it is assumed that the system has the following // memory layout: // // Exception vectors [0x000000--0x00001F] RAM or ROM // ROMSTART--ROMEND [0x008000--0x0FFFFF] ROM (or other non-volatile memory) // RAMSTART--RAMEND [0x100000--0x7FFFFF] RAM (or other read/write memory) // // ------------- // Code segments - may be placed anywhere in memory. // ------------- // // INTVEC -- Exception vector table. // SWITAB -- Software interrupt vector table. // ICODE -- Startup (cstartup) and exception code. // DIFUNCT -- Dynamic initialization vectors used by C++. // CODE -- Compiler generated code. // CODE_I -- Compiler generated code declared __ramfunc (executes in RAM) // CODE_ID -- Initializer for CODE_I (ROM). // // ------------- // Data segments - may be placed anywhere in memory. // ------------- // // CSTACK -- The stack used by C/C++ programs (system and user mode). // IRQ_STACK -- The stack used by IRQ service routines. // SVC_STACK -- The stack used in supervisor mode // (Define other exception stacks as needed for // FIQ, ABT, UND). // HEAP -- The heap used by malloc and free in C and new and // delete in C++. // INITTAB -- Table containing addresses and sizes of segments that // need to be initialized at startup (by cstartup). // CHECKSUM -- The linker places checksum byte(s) in this segment, // when the -J linker command line option is used. // DATA_y -- Data objects. // // Where _y can be one of: // // _AN -- Holds uninitialized located objects, i.e. objects with // an absolute location given by the @ operator or the // #pragma location directive. Since these segments // contain objects which already have a fixed address, // they should not be mentioned in this linker command // file. // _C -- Constants (ROM). // _I -- Initialized data (RAM). // _ID -- The original content of _I (copied to _I by cstartup) (ROM). // _N -- Uninitialized data (RAM). // _Z -- Zero initialized data (RAM). // // Note: Be sure to use end values for the defined address ranges. // Otherwise, the linker may allocate space outside the // intended memory range. //************************************************************************* //************************************************ // Inform the linker about the CPU family used. //************************************************ -carm //************************************************************************* // Segment placement - General information // // All numbers in the segment placement command lines below are interpreted // as hexadecimal unless they are immediately preceded by a '.', which // denotes decimal notation. // // When specifying the segment placement using the -P instead of the -Z // option, the linker is free to split each segment into its segment parts // and randomly place these parts within the given ranges in order to // achieve a more efficient memory usage. One disadvantage, however, is // that it is not possible to find the start or end address (using // the assembler operators .sfb./.sfe.) of a segment which has been split // and reformed. // // When generating an output file which is to be used for programming // external ROM/Flash devices, the -M linker option is very useful // (see xlink.pdf for details). //************************************************************************* //************************************************************************* // Read-only segments mapped to ROM. //************************************************************************* -DROMSTART=MEMSTART -DROMEND=MEMEND //************************************************ // Address range for reset and exception // vectors (INTVEC). // The vector area is 32 bytes, // an additional 32 bytes is allocated for the // constant table used by ldr PC in cstartup.s79. //************************************************ -Z(CODE)INTVEC=MEMSTART:+40 //************************************************ // Startup code and exception routines (ICODE). //************************************************ -Z(CODE)ICODE,DIFUNCT=ROMSTART-ROMEND -Z(CODE)SWITAB=ROMSTART-ROMEND //************************************************ // Code segments may be placed anywhere. //************************************************ -Z(CODE)CODE=ROMSTART-ROMEND //************************************************ // Original ROM location for __ramfunc code copied // to and executed from RAM. //************************************************ -Z(CONST)CODE_ID=ROMSTART-ROMEND //************************************************ // Various constants and initializers. //************************************************ -Z(CONST)INITTAB,DATA_ID,DATA_C=ROMSTART-ROMEND -Z(CONST)CHECKSUM=ROMSTART-ROMEND //************************************************************************* // Read/write segments mapped to RAM. //************************************************************************* -DRAMSTART=(MEMSTART+40) -DRAMEND=MEMEND //************************************************ // Data segments. //************************************************ -Z(DATA)DATA_I,DATA_Z,DATA_N=RAMSTART-RAMEND //************************************************ // __ramfunc code copied to and executed from RAM. //************************************************ -Z(DATA)CODE_I=RAMSTART-RAMEND //************************************************ // ICCARM produces code for __ramfunc functions in // CODE_I segments. The -Q XLINK command line // option redirects XLINK to emit the code in the // CODE_ID segment instead, but to keep symbol and // debug information associated with the CODE_I // segment, where the code will execute. //************************************************ -QCODE_I=CODE_ID //************************************************************************* // Stack and heap segments. //************************************************************************* -D_CSTACK_SIZE=500 -D_SVC_STACK_SIZE=100 -D_IRQ_STACK_SIZE=100 -D_HEAP_SIZE=500 -Z(DATA)CSTACK+_CSTACK_SIZE=RAMSTART-RAMEND // -Z(DATA)SVC_STACK+_SVC_STACK_SIZE=RAMSTART-RAMEND -Z(DATA)IRQ_STACK+_IRQ_STACK_SIZE,HEAP+_HEAP_SIZE=RAMSTART-RAMEND -Z(NEAR)BUF_START=RAMSTART-RAMEND -Z(NEAR)BUF_END=RAMEND //************************************************************************* // ELF/DWARF support. // // Uncomment the line "-Felf" below to generate ELF/DWARF output. // Available format specifiers are: // // "-yn": Suppress DWARF debug output // "-yp": Multiple ELF program sections // "-yas": Format suitable for debuggers from ARM Ltd (also sets -p flag) // // "-Felf" and the format specifiers can also be supplied directly as // command line options, or selected from the Xlink Output tab in the // IAR Embedded Workbench. //************************************************************************* // -Felf mac execUserPreload() { setup(); // init_PLL(); // Test and set Remap __writeMemory32(0xAAAAAAAA,0x00000000,"Memory"); if(__readMemory32(0x00000000,"Memory") != 0xAAAAAAAA) { __writeMemory32(0x01,0xFFFFFF00,"Memory"); // MC_RCR: toggle remap bit } // init_SDRAM (); __message("Target init macro complete"); } setup() { __var i,clk; __writeMemory32(0x1, 0xFFFFFC00, "Memory"); // PMC_SCER: PCK = 1 __writeMemory32(0x0000FF01, 0xFFFFFC20, "Memory"); // PMC_MOR: MOSCEN = 1, enable main clock while(((clk = __readMemory32(0xFFFFFC24, "Memory")) & 0x00010000) == 0); // Read PMC_MCFR to determine Fosc clk = (clk & 0x0000FFFF) * 32768 / 16; // * 244 / 5; __writeMemory32(0x1, 0xFFFFFC30, "Memory"); // PMC_MCKR: CSS = 1, PRES = 0, MDIV = 0 } смотрим внимательно даташит, IAR User Guide и примеры в поставке IAR ТАМ ЕСТ ВСЁ.
  20. at91sam7s

    А с этого места подробнее плз. После энумерации девайс видиться как USB at91... board. Ну имечко ему можно подправить в inf файле.А вот что с ним сделать, чтобы он виделся как COMn ? Я подозреваю, что над существующим драйвером надо соорудить некую надстройку? Или все проще? проще , экзампл вы взяли ? так вот там ДВА *.inf файла, один для самбы, другой симулятор СОМ , причём оба пользуют один и тотже .sys единственное неудобстово - удалять дрова при переходе с одного типа на другой... ещё раз повторюсь пользуйте сайт www.at91.com там в форуме масса интересного..
  21. at91sam7s

    Хм, почему ? USB_example_1.2 всё и для писы и для сама. к томуже в комплекте самбы идёт драйвер который можно использовать как bulk pipe и CDC, вполне подрубается как COM порт. правда надо доработать - там проблемы рестарта усб подключения. зайдите на at91.com та много что есть интересного.
  22. Отвечу , два раза. 1. коротко система не требующаяя ОС в ней ненуждается. примером приведу мозг ЭКУД (мозг афто) хотя приложить к ниму ось и ... рыдания короче... смотрим вниматочно релиз производителей получаем подтверждение. Хотя и телеметрия нужна и псевдо паралельность исполнения и семафоры... но case методики программирования дают лучший и безопасный код. 2. Более развёрнутый по ВАшей проблеме пишу, дам чуть позже. полу офф мне не понравился фриртос, выбор был сделан за uCos для sam.
  23. Так в условии задачи этого нет ? вообще взять доку на кросс студию и почитать как именуются и где распологаются переменные. вконце концов листинг асм посмотреть, что там и куда кладёт студия... псы там из асма попытка достучаться до глобальной переменной - варианты 1. в куче 2. сегменте данных 3. в стеке доступ разный.... а пусть в билию смотрит. псы 2 прикрутка мт-линка к кейлу где нибудь описана , по шагам?
  24. Дим , это очевидно ldr r1,=__program_start в r1 адрес буфера .... ---- noli mi tangere
×
×
  • Создать...