Jump to content
    

Search the Community

Showing results for tags 'allwinner'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Neural networks and machine learning (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
    • Methods and tools for FPGA/ASIC verification
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCU)
    • Cредства разработки для МК
    • ARM
    • RISC-V
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
    • Пайка и монтаж
    • Корпуса
    • Вопросы надежности и испытаний
  • Аналоговая и цифровая техника, прикладная электроника
    • Вопросы аналоговой техники
    • Цифровые схемы, высокоскоростные ЦС
    • RF & Microwave Design
    • Метрология, датчики, измерительная техника
    • АВТО электроника
    • Умный дом
    • 3D печать
    • Робототехника
    • Repair and debug
  • Силовая электроника - Power Electronics
    • Силовая Преобразовательная Техника
    • Обратная Связь, Стабилизация, Регулирование, Компенсация
    • Первичные и Вторичные Химические Источники Питания
    • Высоковольтные Устройства - High-Voltage
    • Электрические машины, Электропривод и Управление
    • Индукционный Нагрев - Induction Heating
    • Системы Охлаждения, Тепловой Расчет – Cooling Systems
    • Моделирование и Анализ Силовых Устройств – Power Supply Simulation
    • Компоненты Силовой Электроники - Parts for Power Supply Design
  • Интерфейсы
    • Форумы по интерфейсам
  • Поставщики компонентов для электроники
    • Поставщики всего остального
    • Компоненты
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
    • Обсуждение Майнеров, их поставки и производства
  • Дополнительные разделы - Additional sections
    • Встречи и поздравления
    • Ищу работу
    • Предлагаю работу
    • Куплю
    • Продам
    • Объявления пользователей
    • Общение заказчиков и потребителей электронных разработок

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники

Found 0 results

  1. Продам SDK для Allwinner V3s. Написано на C/C++ в стиле BareMetal (без ОС). Что может SDK написано здесь: https://gamedev.ru/flame/forum/?id=252846&page=10&m=5549630#m143 По всем вопросам пишите на repstosw2018 @ gmail.com Цена договорная (зависит от уровня подготовки покупателя, плюс цена зависит от того, какие модули программ приобретаются).
  2. Раскурил Allwinner A13 SoC на уровне голого железа. Всем известно, что эти камни исключительно проталкиваются для линукса, ведра и прочей хрени. Доки не дают и с девтулзами всё через одно место... Дофига времени потратил, но своего достиг: запустил и настроил ядро, нужную периферию. Время: около 1 месяца. Только Bare-metal, не ищите здесь линукс или ведро - их тут по-просту нет! Самый тяжелый эмулятор из 2D - GBA теперь идёт с 60 FPS и ровным звуком. Видео в действии: Как оно шло на DSP C6745: https://www.youtube.com/watch?v=ulLPALpHOGk
  3. Всем привет. Есть основной модуль на базе Allwinner T507, который устанавливается на плату с переферией. Стоит задача - добраться до ОС, которая установлена на данном модуле. На вид напоминает какой-то SBC. Документации никакой нет (нагуглить не получилось). Слева на плате похоже выведен UART (NC, TX, RX, GND). Подпаялся к нему. Выводит процесс загрузки: [149]HELLO! BOOT0 is starting! [152]BOOT0 commit : 100e431 [155]set pll start [158]periph0 has been enabled [161]set pll end [163]PMU: AXP858 [168]dram return write ok [171]board init ok [173]debug:rtc h-m-s value:0x0 [176]DRAM BOOT DRIVE INFO: V0.648 [179]the chip id is 0x7400 [182]chip id check OK [185]DRAM_VCC set to 1100 mv [188]DRAM CLK =720 MHZ [191]DRAM Type =8 (3:DDR3,4:DDR4,7:LPDDR3,8:LPDDR4) [201]Actual DRAM SIZE =1024 M [204]DRAM SIZE =1024 MBytes, para1 = 30ea, para2 = 4001000, dram_tpr13 = 6061 [217]DRAM simple test OK. [220]rtc standby flag is 0x0, super standby flag is 0x0 [225]dram size =1024 NOTICE: BL3-1: v1.0(debug):be96482 NOTICE: BL3-1: Built : 18:32:32, 2021-04-21 NOTICE: BL3-1 commit: 8 NOTICE: cpuidle init version V2.0 ERROR: Error initializing runtime service tspd_fast NOTICE: BL3-1: Preparing for EL3 exit to normal world NOTICE: BL3-1: Next image address = 0x4a000000 �[/init]: getty is ttyS0ge spsr = 0x1d3 [/init]: RootDevice is "/dev/mmcblk0p4" , GPT_SUPPORT=1 [/init]: Try to load EMMC ... e2fsck 1.42.12 (29-Aug-2014) /dev/mmcblk0p4: recovering journal /dev/mmcblk0p4: clean, 4544/49152 files, 91415/196608 blocks Starting mount: Mounting privatee2fsck 1.44.5 (15-Dec-2018) /dev/mmcblk0p5: recovering journal /dev/mmcblk0p5: clean, 20/4096 files, 1844/16384 blocks insmod: can't insert '/lib/modules/4.9.170/snc_enable.ko': No such file or directory Starting heartbeat: insmod: can't insert '/lib/modules/4.9.170/i2c-dev.ko': No such file or directory Starting syslogd: OK Starting klogd: cat: can't open '/data/goc/bt_conf.ini': No such file or directory OK using /fb0 Starting haveged: killall: Launcher: no process killed find qt5 installed done OK Starting mount: Mounting mnte2fsck 1.44.5 (15-Dec-2018) /dev/mmcblk0p6: recovering journal /dev/mmcblk0p6: clean, 14/179168 files, 29741/715771 blocks has tinymix Error: only enum types can be set with strings Mixer name: 'audiocodec' Number of controls: 16 ctl type num name value 0 ENUM 1 codec hub mode hub_disable 1 INT 1 digital volume 0 2 INT 1 LINEIN to output mixer gain control 3 3 INT 1 FMIN to output mixer gain control 3 4 INT 1 LINEOUT volume 31 5 BOOL 1 LINEOUT Switch On 6 BOOL 1 Left Output Mixer DACL Switch On 7 BOOL 1 Left Output Mixer DACR Switch Off 8 BOOL 1 Left Output Mixer FMINL Switch Off 9 BOOL 1 Left Output Mixer LINEINL Switch Off 10 BOOL 1 Right Output Mixer DACL Switch Off 11 BOOL 1 Right Output Mixer DACR Switch On 12 BOOL 1 Right Output Mixer FMINR Switch Off 13 BOOL 1 Right Output Mixer LINEINR Switch Off 14 ENUM 1 Left LINEOUT Mux LOMixer 15 ENUM 1 Right LINEOUT Mux ROMixer Usage: tinymix [-D card] [control id] [value to set] Mixer name: 'sndahub' Number of controls: 30 ctl type num name value 0 ENUM 1 ahub audio format Function null 1 BOOL 1 I2S0 SD0 to SDI0 Loopback Debug On 2 BOOL 1 I2S1 SD0 to SDI0 Loopback Debug Off 3 BOOL 1 I2S2 SD0 to SDI0 Loopback Debug Off 4 BOOL 1 I2S3 SD0 to SDI0 Loopback Debug On 5 BOOL 1 I2S0IN Switch Off 6 BOOL 1 I2S0OUT Switch On 7 BOOL 1 I2S1IN Switch Off 8 BOOL 1 I2S1OUT Switch Off 9 BOOL 1 I2S2IN Switch Off 10 BOOL 1 I2S2OUT Switch Off 11 BOOL 1 I2S3IN Switch Off 12 BOOL 1 I2S3OUT Switch Off 13 BOOL 1 DAM0IN Switch Off 14 BOOL 1 DAM1IN Switch Off 15 BOOL 1 DAM0OUT Switch Off 16 BOOL 1 DAM1OUT Switch Off 17 ENUM 1 APBIF0 Src Select APBIF_TXDIF0 18 ENUM 1 APBIF1 Src Select APBIF_TXDIF2 19 ENUM 1 APBIF2 Src Select NONE 20 ENUM 1 I2S0 Src Select NONE 21 ENUM 1 I2S1 Src Select NONE 22 ENUM 1 I2S2 Src Select NONE 23 ENUM 1 I2S3 Src Select NONE 24 ENUM 1 DAM0Chan0 Src Select NONE 25 ENUM 1 DAM0Chan1 Src Select NONE 26 ENUM 1 DAM0Chan2 Src Select NONE 27 ENUM 1 DAM1Chan0 Src Select NONE 28 ENUM 1 DAM1Chan1 Src Select NONE 29 ENUM 1 DAM1Chan2 Src Select NONE Usage: tinymix [-D card] [control id] [value to set] 7c0014585055c6f1bce Starting adb install_listener('tcp:5037','*smartsocket*') device_chose finished! Но tty-ка на нем не оказалось. Нужно искать дальше... Справа вверху подготовка с маркировкой (ID, V, G , <-). Похоже на USB. Контакты которые не подписаны похоже на D+, D-. Звонятся с USB D+, D- с распаеным USB на переферийной плате. Но распаенный USB предназначен для флешки под обновы и патчи, т.е. работает в режиме хоста. Значит через него похоже не добраться до tty. Но настораживает контакт ID в маркировке. Значит похоже предусмотрено переключение OTG. Также в конце лога загрузки есть: какбы намекает что какой-то USB OTG переведен в режим device. Есть способ какой-то найти этот USB? Может на нем слушается tty или запущен ADB (который фигурирует в логе загрузки и поднимается на порту 5037). Еще один из путей решения задачи - скомпилировать загрузчик, miniOS и попробовать загрузится с SD. Дальше примонтировать базоваю ОС с eMMC. Но этот путь пока не увенчался успехом. Нет нигде под Т507 SPL, ядра, dts. Все попытки собрать загрузчик при включении на UARTе тишина. Может кто-то сталкивался с загрузкой данного типа SoC и поделится опытом? Есть еще пусть - в сторону wifi модуля. Но мне кажется он слабоперспективным. Врядли кто-то бы открытую точку доступа поднял на этом интерфейсе (проверить не могу, нет антены). А остальные методы достучаться до него без доступа в ОС мне неизвестны. Путь со сдуванием eMMC и снятие дампа на текущем этапе не рассматривается. Можете подсказать ваше видение решения данной задачи?
  4. Распределил задачи на три ядра: 1. CPU0 - инит периферии, загрузка задачи в CPU1 и DSP, кодер Рида-Соломона 2. CPU1 - декодер Рида-Соломона 3. DSP - управляющая программа + всё остальное. Основная проблема: при подаче питания на плату - кодер Рида-Соломона на CPU0 возвращает правильнные данные, но DSP при приёме этих данных пакета из эфира с помощью приёмника (трансивер Si4463) - возвращает мусор в проверочных символах. При этом сам пакет приходит правильный. Проблема именно в проверочных символах. Если же сделать сброс (нажать кнопку RESET на плате MangoPi - allwinner T113-s3), то проверочные символы верны. И после каждого сброса - данные верны. Проблема возникает только при подаче питания. Взаимодействие CPU0,CPU1 с DSP : управление - через волатильный флаг, слово в памяти - регион не кеширован, не буферизован, SHARED=1. Данные - пара буферов - для кодера и декодера. Кешированы, буферизованы, SHARED=1. #define FEC_CODER_DATA 0xC7D00000 //адрес буфера кодера (кеширован) #define FEC_DECODER_DATA 0xC7D80000 //адрес буфера декодера (кеширован) #define FEC_CODER_CONTROL 0x47E00000 //контроль кодера (не кеширован) #define FEC_DECODER_CONTROL 0x47E80000 //контроль декодера (не кеширован) #define rsc (*(IO u32*)FEC_CODER_CONTROL) #define rsd (*(IO u32*)FEC_DECODER_CONTROL) Процедура запуска кодирования со стороны DSP - buf - входной и выходной буфер. Для простоты - приведен пример синхронной работы кодера (вынуждающий ждать его завершения работы, что сводит "на нет" преимущества многоядерности, но зато более понятен). Есть и асинхронный режим - когда возвращается закодированное содержимое с предыдущей итерации, а даётся команда на кодирование новых данных - без ожидания. static dtype *RSC=(dtype*)FEC_CODER_DATA; static dtype *RSD=(dtype*)FEC_DECODER_DATA; void FEC_Encode(u16 *buf) { memcpy(RSC,buf,Fsize); __asm__ __volatile__ ("" ::: "memory"); xthal_dcache_region_writeback(RSC,Fsize); __asm__ __volatile__ ("" ::: "memory"); rsc=0; __asm__ __volatile__ ("" ::: "memory"); while(!rsc); __asm__ __volatile__ ("" ::: "memory"); xthal_dcache_region_invalidate(&RSC[Fsize>>1],EE<<1); __asm__ __volatile__ ("" ::: "memory"); memcpy(&buf[Fsize>>1],&RSC[Fsize>>1],EE<<1); } Процедура кодирования со стороны CPU0: void FEC_Encode(void) { if(!rsc) { cache_inv_range((u32)RSC,((u32)RSC)+Fsize); __asm__ __volatile__ ("" ::: "memory"); memcpy(EncodeBuf,RSC,Fsize); __asm__ __volatile__ ("" ::: "memory"); encode_rs(EncodeBuf); memcpy(&RSC[Fsize>>1],&EncodeBuf[KK],EE<<1); __asm__ __volatile__ ("" ::: "memory"); cache_flush_range((u32)&RSC[Fsize>>1],((u32)&RSC[Fsize>>1])+(EE<<1)); __asm__ __volatile__ ("" ::: "memory"); rsc=1; } } При приёме вместо содержимого проверочных символов: memcpy(&RSC[Fsize>>1],&EncodeBuf[KK],EE<<1); Прилетает мусор (при каждом новом включении - разный). При этом проверял пакет данных : перед передачей, во время передачи, после передачи - он правильный. Проблема при приёме - проверочные символы битые. При сбросе проблема уходит. Если же сделать кодирование на одном ядре - средствами DSP, то проблема не возникает: void FEC_Encode(u16 *buf) { memcpy(EncodeBuf,buf,Fsize); encode_rs(EncodeBuf); memcpy(&buf[Fsize>>1],&EncodeBuf[KK],EE<<1); } Настройка MMU CPU0,1 для "регистров" rsc/rsd (управление): mmu_tlb_address[i + (dram_base>>20)] = (dram_base + (i << 20)) | (0 << 19) | (0 << 18) | (0 << 17) | (1 << 16) | //SHARED (0 << 15) | (0 << 12) | //TEX (3 << 10) | (0 << 9) | (15 << 5) | (0 << 4) | (0 << 3) | //Cacheble (0 << 2) | //Bufferable (2 << 0); Настройка MMU для буферов: mmu_tlb_address[i + (dram_base>>20)] = (dram_base + (i << 20)) | (0 << 19) | (0 << 18) | (0 << 17) | (1 << 16) | //SHARED (0 << 15) | (0 << 12) | //TEX (3 << 10) | (0 << 9) | (15 << 5) | (0 << 4) | (1 << 3) | //Cachable (1 << 2) | //Bufferable (2 << 0); В чём может быть проблема?
  5. Есть SPI NOR, которая подключена через SPI к Allwinner T113-s3. Функционал записи, чтения, стирания работает. Запись - блок до 256 байт Стирание - блок 4096 байт Необходимо прикрутить FatFs к SPI NOR и отобразить диск через USB для ПК. ПК тоже должен уметь читать и писать файлы в SPI NOR. Есть проблема: ПК видит только съёмные диски с размером сектора 512 байт. Если записать такой кусок я ещё смогу - 2 раза по 256 байт для SPI NOR. То как быть со стиранием? Стираются сразу 4096 байт. В идеале, заставить FatFs работать с размером сектора 4096 байт, но Windows в ПК такой диск не распознаёт и требует форматирования. Что можно сделать? Как избежать лишнего стирания? (копировать все 8 блоков по 512 байт каждый, менять один и записывать все 8 - это сильно уменьшит ресурс по стиранию SPI NOR).
  6. Мы (Forlinx) предоставляем SoM и платы для разработки на базе процессоров NXP, Allwinner, Rockchip, Ti, включая серии iMX6, серии iMX8, серии iMXRT, серии ls10xx, AM62x, AM335x, RK3399, RK3568 и т. д. Email: [email protected] Web: forlinx.net Благодарность! Ti AM6254 SoM и макетная плата
  7. Коллеги, а у кого-нибудь получилось запустить USB OTG под линуксом на свежих ядрах (5.4/5.7)?
  8. Продам отладочные платы ARM Allwinner A13: A13-SOM-256 и A13-Olinuxino: 1) A13 OLINUXINO ARM OLINUXINO MICRO SBC ALLWINNER A13 CTX A8 A13-OLINUXINO-MICRO : $60 + стоимость пересылки 2) A13-SOM-256 на основе ARMCortex-A8 : $55 + стоимость пересылки По всем вопросам обращайтесь : repstosw2018 СОБАКА gmail ТОЧКА com
  9. Продам отладочные платы от OLIMEX на базе процессора Allwinner A13 (ARM Cortex-A8). Цены предлагайте свои. Пересылка по России за Ваш счёт (почтой РФ или любой экспресс курьерской доставкой). Пишите в личку форума или на е-mаil : repstosw2018 собака gmail .com Продаю по отдельности или все вместе: 1) A13-OLINUXINO (большая плата) 2) A13-SOM-256 (маленькая плата. Модуль.)
  10. Добрый день. Продолжаю осваивать чип Allwinner V3s. Столкнулся с таким фактом. Нужно сделать переброс "память-память" самым наискорейшим способом, который возможен. Начал ковырять DMA и обнаружил несколько малоприятных вещей: 1) DMA не поддерживает переменные шаги приращения. Только программирование через дескрипторы. 2) Тактовая частота работы DMA всего 200 МГц !!! В сорцах линукса зачем-то для тактовой DMA используют AHB, которая получается делением на 2 частоты ядра: 1200/2 = 600 МГц. Затем эти 600 МГц делятся ещё на 3 для DMA. В итоге выходит всего-навсего 200 МГц. Таким DMA полезно делать только подкачку аудио-данных при воспроизведении или записи звука. Или ещё что-нибудь свя занное с забором-выводом данных в периферию! Для быстрого коприрования память-память не подходит! А теперь о хорошем! Если копировать с помощью инструкций NEON: void MEMCPY(u8 *dst,u8 *src,u32 size) { asm volatile( "1: \n" "VLDM %[src]!,{d0-d7} \n" "VSTM %[dst]!,{d0-d7} \n" "SUBS %[size],%[size],#0x40 \n" "BGT 1b \n" : [dst]"+r"(dst), [src]"+r"(src), [size]"+r"(size) : : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "cc", "memory" ); } то скорость получается самая максимальная. Если битовое поле TEX выставить равным "001", то получим ещё более высокий прирост в скорости (+20 %): //VIDEO MEMORY i=61; mmu_tlb_address[i + (dram_base>>20)] = (dram_base + (i << 20)) | (0 << 19) | (0 << 18) | (0 << 17) | (0 << 16) | (0 << 15) | (1 << 12) | //TEX (3 << 10) | (0 << 9) | (15 << 5) | (0 << 4) | (0 << 3) | //Cache (1 << 2) | //Buffer (2 << 0); При этом бит кеширования в дескрипторе приёмника в MMU-таблице должен быть выключен! Если его включить в приемнике, то скорость просядет. Тоесть: приемник: TEX=1, C=0, B=1 источник: TEX=0, C=1, B=1 При таком раскладе выходит около 8000 FPS при копировании буфера 240 x 160 x 16 бит. (ядро 1200 МГц, память 456 МГц ). С DMA выходит в 8 раз меньше! Если увеличить частоту DMA в 2,3 раза, то скорость нисколько не увеличивается. Действительно ли с DMA всё так печально, или есть способ его заставить работать быстрее?
×
×
  • Create New...