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

JeDay

Свой
  • Постов

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

  • Посещение

Сообщения, опубликованные JeDay


  1. Всем доброго времени суток.

     

    Продолжаю осваивать Linux на плате SK-AT91SAM9XE512-S3E. Ядро научился запускать, дело дошло до RootFS.

    Исходные данные:

    Первичный загрузчик, u-boot окружение и ядро находятся в dataflash, RootFS располагается в NAND. Карта памяти здесь:

    http://www.at91.com/linux4sam/bin/view/Linux4SAM/GettingStarted

     

    расположение блоков в u-boot по умолчанию:

    u-boot-2010.09\board\atmel\at91sam9260ek\partition.c

    /*define the area offsets*/
    dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
        {0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"},
        {0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"},
        {0x00008400, 0x00041FFF, FLAG_PROTECT_SET,   0, "U-Boot"},
        {0x00042000, 0x00251FFF, FLAG_PROTECT_CLEAR, 0,    "Kernel"},
        {0x00252000, 0xFFFFFFFF, FLAG_PROTECT_CLEAR, 0,    "FS"},
    };

     

    Аргументы передаваемые ядру тоже не менялись:

    u-boot-2010.09\include\configs\at91sam9260ek.h

    #define CONFIG_BOOTARGS        "console=ttyS0,115200 "            \
                    "root=/dev/mtdblock0 "            \
                    "mtdparts=atmel_nand:-(root) "        \
                    "rw rootfstype=jffs2"

     

    В ядре

    linux-2.6.36\arch\arm\mach-at91\board-sam9260ek.c

    прописано:

    /*
    * NAND flash
    */
    static struct mtd_partition __initdata ek_nand_partition[] = {
           {
                   .name        = "Bootstrap",
                   .offset      = 0,
                   .size        = SZ_4M,
           },
           {
                   .name        = "rootfs",
                   .offset      = MTDPART_OFS_NXTBLK,
                   .size        = MTDPART_SIZ_FULL,
           },
    };

     

    т.е. ,как я понял, rootfs располагается в NAND по смещению 4М и занимает все оставшееся место.

    Но в логе загрузки ядра видно что раздел rootfs создается на весь размер флешки.

    Creating 1 MTD partitions on "atmel_nand":
    0x000000000000-0x000010000000 : "root"

     

    U-Boot> bootm
    ## Booting kernel from Legacy Image at 22000000 ...
       Image Name:   JedaY Linux 2.6.36 b002
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    1809044 Bytes = 1.7 MiB
       Load Address: 20008000
       Entry Point:  20008000
       Verifying Checksum ... OK
       Loading Kernel Image ... OK
    OK
    
    Starting kernel ...
    
    Uncompressing Linux... done, booting the kernel.
    Linux version 2.6.36 (jeday@vmachine) (gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202) ) #2 Wed Oct 27 20:16:23 MSD 2010
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    CPU: VIVT data cache, VIVT instruction cache
    Machine: -=JedaY ComputerS=-
    Memory policy: ECC disabled, Data cache writeback
    Clocks: CPU 200 MHz, master 100 MHz, main 12.000 MHz
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
    Kernel command line: console=ttyS0,115200 root=/dev/mtdblock0 mtdparts=atmel_nand:-(root) rw rootfstype=jffs2
    PID hash table entries: 256 (order: -2, 1024 bytes)
    Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
    Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
    Memory: 64MB = 64MB total
    Memory: 61340k/61340k available, 4196k reserved, 0K highmem
    Virtual kernel memory layout:
        vector  : 0xffff0000 - 0xffff1000   (   4 kB)
        fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
        DMA     : 0xffc00000 - 0xffe00000   (   2 MB)
        vmalloc : 0xc4800000 - 0xfee00000   ( 934 MB)
        lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
        modules : 0xbf000000 - 0xc0000000   (  16 MB)
          .init : 0xc0008000 - 0xc0026000   ( 120 kB)
          .text : 0xc0026000 - 0xc0338000   (3144 kB)
          .data : 0xc0352000 - 0xc0374680   ( 138 kB)
    NR_IRQS:192
    AT91: 96 gpio irqs in 3 banks
    Console: colour dummy device 80x30
    console [ttyS0] enabled
    Calibrating delay loop... 99.73 BogoMIPS (lpj=498688)
    pid_max: default: 32768 minimum: 301
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    NET: Registered protocol family 16
    AT91: Power Management
    AT91: Starting after user reset
    bio: create slab <bio-0> at 0
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    Switching to clocksource tcb_clksrc
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 2048 (order: 2, 16384 bytes)
    TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    TCP: Hash tables configured (established 2048 bind 2048)
    TCP reno registered
    UDP hash table entries: 256 (order: 0, 4096 bytes)
    UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    NET: Registered protocol family 1
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    NetWinder Floating Point Emulator V0.97 (double precision)
    JFFS2 version 2.2. (NAND) A© 2001-2006 Red Hat, Inc.
    msgmni has been set to 119
    Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
    io scheduler noop registered (default)
    atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
    brd: module loaded
    loop: module loaded
    ssc ssc.0: Atmel SSC device at 0xc4860000 (irq 14)
    NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
    Scanning device for bad blocks
    Bad eraseblock 1833 at 0x00000e520000
    1 cmdlinepart partitions found on MTD device atmel_nand
    Creating 1 MTD partitions on "atmel_nand":
    0x000000000000-0x000010000000 : "root"
    atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffc8000 (irq 12)
    mtd_dataflash spi0.1: AT45DB321x (4224 KBytes) pagesize 528 bytes (OTP)
    atmel_spi atmel_spi.0: chipselect 1 already in use
    atmel_spi atmel_spi.1: Atmel SPI Controller at 0xfffcc000 (irq 13)
    MACB_mii_bus: probed
    eth0: Atmel MACB at 0xfffc4000 irq 21 (3e:36:65:ba:6f:be)
    eth0: attached PHY driver [Micrel KS8001 or KS8721] (mii_bus:phy_addr=ffffffff:01, irq=-1)
    ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    at91_ohci at91_ohci: AT91 OHCI
    at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
    at91_ohci at91_ohci: irq 20, io mem 0x00500000
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 2 ports detected
    Initializing USB Mass Storage driver...
    usbcore: registered new interface driver usb-storage
    USB Mass Storage support registered.
    usbcore: registered new interface driver usbserial
    usbserial: USB Serial Driver core
    USB Serial support registered for FTDI USB Serial Device
    usbcore: registered new interface driver ftdi_sio
    ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
    USB Serial support registered for pl2303
    usbcore: registered new interface driver pl2303
    pl2303: Prolific PL2303 USB to serial adaptor driver
    mice: PS/2 mouse device common for all mice
    rtc-at91sam9 at91_rtt.0: rtc core: registered at91_rtt as rtc0
    rtc-at91sam9 at91_rtt.0: rtc0: SET TIME!
    usbcore: registered new interface driver usbhid
    usbhid: USB HID core driver
    TCP cubic registered
    NET: Registered protocol family 10
    IPv6 over IPv4 tunneling driver
    NET: Registered protocol family 17
    rtc-at91sam9 at91_rtt.0: hctosys: unable to read the hardware clock
    VFS: Mounted root (jffs2 filesystem) on device 31:0.
    Freeing init memory: 120K
    Kernel panic - not syncing: No init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
    [<c002c1a8>] (unwind_backtrace+0x0/0xe4) from [<c0284418>] (panic+0x50/0x174)
    [<c0284418>] (panic+0x50/0x174) from [<c0026598>] (init_post+0x9c/0xbc)
    [<c0026598>] (init_post+0x9c/0xbc) from [<c000846c>] (kernel_init+0x110/0x14c)
    [<c000846c>] (kernel_init+0x110/0x14c) from [<c0027df8>] (kernel_thread_exit+0x0/0x8)

     

    Вопросы в следующем:

    1. Почему ядро пытается создать раздел в начале NAND а не с адреса 0х400000?

    2. Где можно почитать про передачу аргументов в ядро, именно: root и mtdparts?

    В файле linux-2.6.36\Documentation\kernel-parameters.txt они есть, но синтаксиса нету, есть только ссылка на исходник:

    "See drivers/mtd/cmdlinepart.c".

    3. Правильно я понимаю, что u-boot знает где лежит RootFS только для того, чтобы по TFTP его автоматом в нужное место флешки записывать (т.е. на нахождение rootfs ядром это не влияет) ?

    4. Откуда берется параметр в аргументе "atmel_nand" ? В исходниках ядра так и не смог распутать клубок...

  2. sasamy спасибо за наводку, буду знать :)

     

    Только что скачал ядро 2.6.22, накатил патч от http://maxim.org.za и применил дефолтный конфиг at91sam9260ek_defconfig он как раз под это ядро, изменил частоту кварца на 12МГц и скомпилил.

     

    Ядро заработало :disco: Теперь надо ФС прикрутить ну и экспериментировать с настройками ядра... В общем уже есть точка опоры.

    U-Boot> tftp
    macb0: link up, 10Mbps half-duplex (lpa: 0x0020)
    Using macb0 device
    TFTP from server 192.168.0.34; our IP address is 192.168.0.107
    Filename 'uImage.bin'.
    Load address: 0x22000000
    Loading: #################################################################
         ##########################
    done
    Bytes transferred = 1322354 (142d72 hex)
    U-Boot> bootm
    ## Booting kernel from Legacy Image at 22000000 ...
       Image Name:   JedaY Linux 2.6.22 Kernel Image
       Image Type:   ARM Linux Kernel Image (gzip compressed)
       Data Size:    1322290 Bytes = 1.3 MiB
       Load Address: 20008000
       Entry Point:  20008000
       Verifying Checksum ... OK
       Uncompressing Kernel Image ... OK
    
    Starting kernel ...
    Linux version 2.6.22 (jeday@vmachine) (gcc version 4.4.1 (Sourcery G++ Lite 2010q1-188) ) #2 Tue Oct 26 21:01:31 MSD 2010
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    Machine: Atmel AT91SAM9260-EK
    Memory policy: ECC disabled, Data cache writeback
    Clocks: CPU 200 MHz, master 100 MHz, main 12.000 MHz
    CPU0: D VIVT write-back cache
    CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
    Built 1 zonelists.  Total pages: 16256
    Kernel command line: console=ttyS0,115200 root=/dev/mtdblock0 mtdparts=atmel_nand:-(root) rw rootfstype=jffs2
    AT91: 96 gpio irqs in 3 banks
    PID hash table entries: 256 (order: 8, 1024 bytes)
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
    Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
    Memory: 64MB = 64MB total
    Memory: 62080KB available (2464K code, 232K data, 108K init)
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    NET: Registered protocol family 16
    Generic PHY: Registered new driver
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 2048 (order: 2, 16384 bytes)
    TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    TCP: Hash tables configured (established 2048 bind 2048)
    TCP reno registered
    NetWinder Floating Point Emulator V0.97 (double precision)
    JFFS2 version 2.2. (NAND) (SUMMARY)  Â© 2001-2006 Red Hat, Inc.
    io scheduler noop registered
    io scheduler anticipatory registered (default)
    atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
    atmel_usart.1: ttyS1 at MMIO 0xfffb0000 (irq = 6) is a ATMEL_SERIAL
    atmel_usart.2: ttyS2 at MMIO 0xfffb4000 (irq = 7) is a ATMEL_SERIAL
    RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
    loop: module loaded
    Davicom DM9161E: Registered new driver
    Davicom DM9161A: Registered new driver
    Davicom DM9131: Registered new driver
    macb macb: detected PHY at address 1 (ID 0022:1619)
    eth0: Atmel MACB at 0xfffc4000 irq 21 (3e:36:65:ba:6f:be)
    No NAND device found!!!
    atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffc8000 (irq 12)
    atmel_spi atmel_spi.1: Atmel SPI Controller at 0xfffcc000 (irq 13)
    usbmon: debugfs is not available
    at91_ohci at91_ohci: AT91 OHCI
    at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
    at91_ohci at91_ohci: irq 20, io mem 0x00500000
    usb usb1: configuration #1 chosen from 1 choice
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 2 ports detected
    Initializing USB Mass Storage driver...
    usbcore: registered new interface driver usb-storage
    USB Mass Storage support registered.
    udc: at91_udc version 3 May 2006
    mice: PS/2 mouse device common for all mice
    i2c /dev entries driver
    at91_i2c at91_i2c: AT91 i2c bus driver.
    AT91 MMC: 4 wire bus mode not supported by this driver - using 1 wire
    usbcore: registered new interface driver usbhid
    drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver
    Advanced Linux Sound Architecture Driver Version 1.0.14 (Thu May 31 09:03:25 2007 UTC).
    ALSA device list:
      No soundcards found.
    TCP cubic registered
    NET: Registered protocol family 1
    NET: Registered protocol family 17
    Root-NFS: No NFS server available, giving up.
    VFS: Unable to mount root fs via NFS, trying floppy.
    List of all partitions:
    No filesystem could mount root, tried:  jffs2
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

  3. п1,2 просто не нужны - достаточно одной моей команды.

    Эти пункты есть в документации README на u-boot.

     

    /mkimage -A arm -O linux -C none -T kernel -a 20008000 -e 20008000 -n linux-2.6 -d arch/arm/boot/zImage zlinux

     

    Назовите файл на выходе (который у меня zlinux) как вам нужно - это готовый образ ядра для загрузки его через uboot.

     

    А что значит этот путь? :)

    arch/arm/boot/zImage

  4. Последовательность упаковки ядра:

    П.1 arm-none-linux-gnueabi-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin

    П.2 gzip -9 linux.bin

    П.3 mkimage -A arm -O linux -T kernel -C gzip -a 0x20008000 -e 0x20008000 -n "Linux Kernel Image" -d linux.bin.gz uImage.bin

     

    Эта последовательность отрабатывает правильно. Пробовал так упаковывать vmlinux который шел на диске уже скомпиленный.

    Исходный vmlinux - 3.7Мб.

    П.1 linux.bin - 2.8Мб.

    П.2 linux.bin.gz - 1.4Мб.

    П.3 uImage.bin - 1.4Мб.

     

    У меня исходный vmlinux (2.6.36) 4.1Мб, после 1-й комагды linux.bin равен 3Гб.

     

    To sasamy Проблема с бинарником возникает на П1 следовательно ключи для mkimage нипричем.

    Есть еще какие нибуть варианты? :)

  5. Для надежности MACHINE_ID в u-boot для платы AT91SAM9260EK в файле

    u-boot-2010.09\board\atmel\at91sam9260ek\at91sam9260ek.c

    прописал

    /* arch number of AT91SAM9260EK-Board */
    gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9260EK;

     

    в

    u-boot-2010.09\include\configs\at91sam9260ek.h

    тоже жестко на всякий случай прописал

    #define CONFIG_AT91SAM9260    1

     

    Скомпилировал заново, бинарник старого и нового билда отличаются только хедером с временем компиляции. Значит MACHINE_ID у меня точно равен MACH_TYPE_AT91SAM9260EK (1099).

     

    В конфигах ядра прописано. Логи включены. За основу брал конфиг at91sam9260ek_defconfig.txt с сайта at91.com

    CONFIG_ARCH_AT91=y
    CONFIG_MACH_AT91SAM9260EK=y
    CONFIG_MACH_AT91SAM9260EK=y

     

    MACHINE_ID тоже равен 1099. (файл linux-2.6.36/arch/arm/tools/mach-types)

     

    Пробовал с моим u-boot грузить ядро 2.6.24 с дика который в комплекте шет, грузится нормально.

    Значит получается я неправильно бинарник собираю.

    Подметил что я собирал ядро компилером с префиксом "arm-none-eabi-" который делает бинарник исполняющийся на процессоре без ОС,

    а разработчик starterkit собирал с префиксом "arm-none-linux-gnueabi-".

     

    Скомпилил еще раз ядро с "arm-none-linux-gnueabi", файл vmlinux 4.1Мб.

    Теперь начал проявляться странный ефект, при выполнении команды:

    arm-none-linux-gnueabi-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin

    файл linux.bin получается размером 3Гб :(

     

    Никто не сталкивался с такой проблемой ?

  6. mdmitry bootstrap здесь нипричем, я свой первичный загрузчик написал и хорошо протестировал.

     

    sasamy спасибо за наводку, посмотрю. MACHINE ID это некое число или текстовая строка?

    А на счет конфига я хотел сказать что базировался на готовом. Например в нем есть поддежка фреймбуфера и звука, я это все отключил.

    Мне сейчас главное чтобы ядро хоть как-то задышало..

    Пробовал запускать собраное ядро с сайта www.at91.com скомпиленное под фирмовую борду с кварцем 18.432, так оно показывает признаки жизни: после строки "Starting kernel ..." некоторое время еще что-то ероглифами в лог пишет.

  7. Добрый день всем.

     

    Осваиваю Linux на сабжевой плате.

    Имеется:

    u-boot-2010.09.

    arm-2010q1-188-arm-none-eabi

    linux-2.6.36

    Конфиг ядра взят с сайта http://dmilvdv.narod.ru/AT91SAM9260/index.html

     

    u-boot

    Конфиг командной строки и аргументов ядра по умолчанию.

    Исправлена частота 200МГц

    #define AT91C_MAIN_CLOCK                200000000

    Понизил частоту SPI (согласовать с Bootstrap):

    #define AT91C_SPI_CLK        2000000

    Установить адрес микросхемы физического интерфейса Ethernet в cpu/arm926ejs/at91sam9/ether.c:

    macb_eth_initialize(0, (void *)AT91SAM9260_BASE_EMAC, 0x01);

     

    Ядро

    Никакие патчи не применял за исключением исправлений описанный на сайте (ссылка выше).

    Собирал с ключем "arm-none-eabi-"

    После сборки заливаю образ ядра по TFTP, вижу лог:

     

    U-Boot> tftp
    macb0: link up, 10Mbps half-duplex (lpa: 0x0020)
    Using macb0 device
    TFTP from server 192.168.0.34; our IP address is 192.168.0.107
    Filename 'uImage.bin'.
    Load address: 0x22000000
    Loading: #################################################################
         ###############################################
    done
    Bytes transferred = 1635311 (18f3ef hex)
    U-Boot> bootm
    ## Booting kernel from Legacy Image at 22000000 ...
       Image Name:   Linux Kernel Image 2.6.36
       Image Type:   ARM Linux Kernel Image (gzip compressed)
       Data Size:    1635247 Bytes = 1.6 MiB
       Load Address: 20008000
       Entry Point:  20008000
       Verifying Checksum ... OK
       Uncompressing Kernel Image ... OK
    
    Starting kernel ...

     

    Дальше ничего не происходит или происходит но этого не видно.

    Подскажите в чем может быть проблема? В какую сторону копать?

    Читал на форуме что "Starting kernel ..." пишет уже распаковщик ядра, значит управление ему передалось...

    Может надо было собирать компилером с префиксом "arm-none-linux-eabi-" ?

     

    Аналогичная проблема уже подымалась, но ответа по данному вопросу нет:

    http://electronix.ru/forum/index.php?showt...ng+kernel\

     

    Спасибо.

  8. Попробовал запустить модуль GE864-QUAD - таже самая ситуация: стартует, выходит в сеть, проглатывает команду установки точки доступа, но на команду дозвона ничего не отвечает.

    (Предыдущий модуль GE864-DUAL V2).

    Фирменная техподдежка уже сутки молчит :(

     

    Может у кого нибуть была похожая проблема?

  9. Всем добрый день.

     

    Есть разработанное ус-во на базе Siemens MC-55i. Для выхода в интернет используется внешний PPP и TCP/IP стек. Пару дней назад решил затестить работу GE864 модема.

    Различия в моем коде было только в одной команде - это проверка наличия сим-карты: AT#QSS - Telite и AT^SCKS - Siemens.

    Плюс добавил команду "AT#DIALMODE=2" чтобы команда дозвона отрабатывала соединение для передачи данных, а не только голосовой дозвон.

    Грабли возникли в команде дозвона "ATD*99***1#", модем просто на нее не отвечает. (Сименс отвечает CONNECT в течении 15 секунд, дальше идут РРР пакеты).

     

    Собственно вопрос: как добиться дозвона в этом модеме? Может я не заметил дополнительные команды настроек в даташите?

  10. Всехм спасибо.

     

    У меня SK-MAT91, кварц на 12МГц, прекрасно работает по USB - я что-то делаю не так?

    У меня не работает, всплывает сообщение "ус-во не опознано".

     

    Всё верно, чтобы SAM-BA заработала с USB, нужен кварц 18,432 МГц. А с 12 МГц - SAM-BA через COM-порт (если он, конечно есть )

    ИМХО, проще кварц перепаять.

    В общем подлкючился через JTAG, пока все работает. С USB потом разбираться буду, почему он не работает.

  11. Добрый день!

    Есть плата с сабжевым процессором и кварцем на 12 МГц. Хочу залить скомпиленный Bootstrap. При подключении к USB девайс не регистрируется. На сколько я понимаю это изза того что кварц не 18.432 МГц.

    Вопросы:

    1. как заставить работать плату с SAM-BA?

    2. Если с кварцем 12 Мгц частота работы USB устанавливается неправильно и SAM-BA не заработает, то как тогда во внешнюю влешь грузить прошивки?

     

    Спасибо.

  12. В проект под uCOS надо прикрутить обработчик SWI прерываний.

    В функции "void OS_CPU_ExceptHndlr (CPU_DATA except_id)" надо сделать свое ответвление на обработчик.

    Собственно как реализовать этот обработчик, чтобы "#pragma swi_number=хх" отрабатывались штатным обработчиком?

  13. Добрый день всем.

    Поднял стек на LPC2468+ucos. Все вроди работает. Теперь на втором этапе хочу запустить стек РРР.

    Создал файл sio.c и прописал функции: sio_read_abort, sio_read, sio_write.

    При компиляции выдает ошибку, надо создать функцию sys_jiffies().

    Собственно теперь вопрос:

    В каком файле данную функцию создать и что она должна делать? (С исходников понял лишь то, что она как-то к времени должна быть привязана)

     

    Спасибо

  14. Добрый день.

    Имеется плата с МК LPC23 серии. Во флеше живет 2 проекта: вторичный загрузчик и основное приложение (ОП), которое начинается с адреса 0х4000. Бутер использует основные адреса прерываний, а приложение - отремапленные.

    В ОП используется RTOS, обработчики прерывания представляют собой "relative branch" - "ldr pc,[pc,#24]".

    Собственно вопрос: как заставить работать обработчик прерывания? (с приложениями, в которых ISR адрес берется с VIC напрямую "ldr pc,[pc, #-0x0120]", проблем нет)

     

    Вот похожая тема, но там не решена моя задача:

    http://electronix.ru/forum/index.php?showt...branch&st=0

     

    Спасибо.

  15. Может я что-то не доганяю, но size-3 это пакет без FCS, а size+1 это полный пакет(согласно вашим словам).

    Напрашивается вопрос: почему же NXP говорит что длина пакета равна size-1? :)

    Глубо зацикливаться, но все же интерестно..

  16. Все равно не сходится длина.

    преамбула ethernet и SFD откидывается и в буфере данных их нет. В StatusInfo хранится длина фрейма Size, хотя реальное значение равно (Size-3) а согласно даташиту (Size-1). Получается несоответствие в 2 байта и 4-х байтный FCS имхо здесь нипричем

  17. Всем спасибо, оживил драйвер.

    По ходу дела возник следующий вопрос: В структуре статуса принятых фреймов( RxStatus[RXCONSUMEINDEX].StatusInfo ) есть поле длины. Реальная длина пакета равна (Size-1), но во всех драйверах ЕМАС длина считается как (Size-3). Почему так?

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