Интересуюсь - есть ли среди присутствующих люди, знакомые не понаслышке с subj. У меня в наличии 2 evaluation board - STAMP на 533 и EZKIT на
537. Нужно подключить 1-2 ATA HDD и/или DVD в режиме как минимум PIO4, следующим этапом USB flash memory. Есть вопросы, которые хотелось бы обсудить с знатоками (В основном - выбор между linux и VDSP kernel).
Попробую обьяснить: выбор Blackfin 537 - не моя прерогатива.Железо уже в процессе производства.Устройство (в общих чертах)представляет собой многоканальный цифровой магнитофон/регистратор, работающий в режиме
24/7. Соответственно, HDD IDE для сохранения информации единственное приемлемое решение, нужна какая-то файловая система, поддерживающая
TCP/IP стек. Собственно, linux (точнее,uClinux) это все может обеспечить, только... сыровато он как-то пока выглядит (на STAMP он идет предустановленным). Правда, на
formatting link
доработка идет полным ходом. А вот в VDSP TCP стек есть, а файловую систему писать прийдется самостоятельно.
Писать прийдется довольно много.Например,uClinux прилично отличается от просто linux,в частности отсутствием менеджера управления памятью. Поддержки ext2/3 как, впрочем и FAT32 в VDSP нет и, пока не предвидится.(FAT32-IMHO вообще г$#@но, извините).Можно, конечно, найти его исходники, но в случае реализации под VDSP как минимум нужно еще будет писать аналог scandisk/chkdsk и терпеливо ждать пока он прочекает
200Gb диск после некорректного выключения питания. uClinux меня смущает в плане надежности - например, ftp-сервер в тестовом режиме упал при увеличении размера файла до 25Mb. Веб-сервер вообще больше одного соединения не выдержал.Напоминаю - я просил совета что выбрать прежде всего у тех, кто с этим реально работает или работал.
Нет. Теперь - нет. Есть и то и то. А ядро проекта uClinux отличается от прочих линуксов активной поддержкой и развитием разнообразных плат, с mmu и без.
Не совсем так. MMU в версии для Blackfin uClinux действительно существует, но в упрощенном виде. Например он защищает от записи область кернела от программ, но не программу от программы, нет виртуальной памяти.
uClinux stands for microcontroller Linux (u for the Greek letter mu denoting micro and C for controller). This is a port of the Linux kernel designed for use on devices without a Memory Management Unit (MMU).
Considering that the absence of full MMU support in uClinux constitutes a fundamental difference from mainstream Linux, surprisingly little kernel and user space software is affected. Two differences, the lack of memory protection and the lack of a virtual memory model, between mainstream Linux and uClinux are a consequence of the removal of MMU support from uClinux. Specifically, becuase Blackfin has part of a MMU (offers some memory protection, but not virtual memory), Blackfin/uClinux has better protection than other noMMU systems, and will not crash as often as uClinux running on different processors.
Memory Protection
One consequence of operating without memory protection is that an invalid pointer reference (null pointer, or pointer to an odd address), even by an unprivileged process, may trigger an address error, and potentially corrupt or even shut down the system. Obviously code running on such a system must be programmed carefully and tested diligently to ensure robustness and security.
The Blackfin MMU does provide partial memory protection, and can segment user space from kernel space, so this less likily to be an issue on the Blackfin architecture like it is on other devices that run uClinux. On Blackfin/uClinux, we start the kernel at 0?1000, leaving 4k as a buffer for bad pointers. If an application gets a bad pointer that reads or writes into the first 4k of memory, the application will halt. Other implmentation of uClinux will start writing over the kernel. This will ensure that random crashes due to pointer corruption are less likily to happen on Blackfin/uClinux.
The Blackfin MMU also protects uClinux applicaitons from writing into kernel space, but does not protect them from writing from one application into the space of another application.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.