Jump to content

    

zuuuuk

Участник
  • Content Count

    186
  • Joined

  • Last visited

Posts posted by zuuuuk


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

     

    Я использую MK60DN512xx10. KSDK1.3

    С генерировал простой проект с Processor Expert.

    и хочу обратиться к регистрам внутренних модулей.

     

      int* mmfr = (int*)0x400c0040;
      int tmp = *mmfr;

    и при выполнении второй строки процессор попадает в прерывание.

    /*
    ** ===================================================================
    **     Method      :  Cpu_Cpu_Interrupt (component MK60DN512LL10)
    **
    **     Description :
    **         This ISR services an unused interrupt/exception vector.
    **         This method is internal. It is used by Processor Expert only.
    ** ===================================================================
    */
    PE_ISR(Cpu_Interrupt)
    {
      /* This code can be changed using the CPU component property "Build Options / Unhandled int code" */
      PE_DEBUGHALT();
    }

     

    Подскажите, из за чего подобное происходит?

    почему мк попадает в это прерывание?

     

     

  2. Доброго времени суток.

     

    Я хочу собрать embended linux под powerpc-poky-linux. mpc8315e-rdb

    выполняю команда последовательно. как написано в quick start

    http://www.yoctoproject.org/docs/2.2.1/yoc...project-qs.html

     

    cd ~/poky
    source oe-init-build-env  ../../ypBuild

    попадаю в директорию ypBuild

    и запускаю сборку

    bitbake core-image-minimal

    проект сконфигурирован

    Build Configuration:
    BB_VERSION        = "1.32.0"
    BUILD_SYS         = "x86_64-linux"
    NATIVELSBSTRING   = "universal"
    TARGET_SYS        = "powerpc-poky-linux"
    MACHINE           = "mpc8315e-rdb"
    DISTRO            = "poky"
    DISTRO_VERSION    = "2.2.1"
    TUNE_FEATURES     = "m32 fpu-hard ppce300c3"
    TARGET_FPU        = ""
    meta
    meta-poky

    собираю под ubuntu 17

    через 3 часа ошибка

    ERROR: oe_runmake failed
    .libs/compatibility-c++0x.o:(.got2+0x24): undefined reference to `__dso_handle'
    ../src/c++11/.libs/libc++11convenience.a(system_error.o):(.got2+0x24): undefined reference to `__dso_handle'
    ../src/c++98/.libs/libc++98convenience.a(mt_allocator.o):(.got2+0x14): undefined reference to `__dso_handle'
    ../src/c++98/.libs/libc++98convenience.a(c++locale.o):(.got2+0x58): undefined reference to `__dso_handle'
    ../src/c++11/.libs/libc++11convenience.a(condition_variable.o):(.got2+0xc): undefined reference to `__dso_handle'
    ../src/c++11/.libs/libc++11convenience.a(future.o):(.got2+0x24): more undefined references to `__dso_handle' follow
    collect2: error: ld returned 1 exit status
    Makefile:606: recipe for target 'libstdc++.la' failed
    make[3]: *** [libstdc++.la] Error 1
    make[3]: Leaving directory '/media/sergeiy/WD/YOCTO/ypBuild/tmp/work/ppce300c3-poky-linux/gcc-runtime/6.2.0-r0/gcc-6.2.0/build.powerpc-poky-linux.powerpc-poky-linux/powerpc-poky-linux/libstdc++-v3/src'
    Makefile:638: recipe for target 'all-recursive' failed
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory '/media/sergeiy/WD/YOCTO/ypBuild/tmp/work/ppce300c3-poky-linux/gcc-runtime/6.2.0-r0/gcc-6.2.0/build.powerpc-poky-linux.powerpc-poky-linux/powerpc-poky-linux/libstdc++-v3/src'
    Makefile:507: recipe for target 'all-recursive' failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/media/sergeiy/WD/YOCTO/ypBuild/tmp/work/ppce300c3-poky-linux/gcc-runtime/6.2.0-r0/gcc-6.2.0/build.powerpc-poky-linux.powerpc-poky-linux/powerpc-poky-linux/libstdc++-v3'
    Makefile:414: recipe for target 'all' failed
    make: *** [all] Error 2
    WARNING: exit code 1 from a shell command.
    ERROR: Function failed: do_compile (log file is located at /media/sergeiy/WD/YOCTO/ypBuild/tmp/work/ppce300c3-poky-linux/gcc-runtime/6.2.0-r0/temp/log.do_compile.745)

     

    я не специалист в yocto project. И собираю в качестве эксперимента.

     

    Подскажите, как можно победить эту ошибку?

    что не так со сборкой?

  3. Доброго времени суток.

     

    применяю PHY KSZ8031.

    помогите разобрать тонкости настройки данной микросхемы.

    в регистре 0х1f PHY Control 2 bit [15] На странице 31.

     

    изменение бита на 1 описано на странице 19.

    Режим HP auto MDI/MDI-X mod

     

    Но вот что если этот бит изменить на 0.

    Что означает режим Micrel Auto MDI/MDI-X mod?

    Micrel_KSZ8031RNLI_TR_datasheet.pdf

  4. Доброго времени суток.

     

    Я имею плату с контроллером МК60DN512 и Ethernet.

    Ethernet подключается к роутеру mikrotik 750GL c routerOS на борту.

     

    При подключении не горит зеленый светодиот ( Индикатор подключения) на обоих устройствах.

     

    1 если я подключаю router к ноутбуку то все работает. светодиод горит, route пингуется.

    2 если я подключаю плату к ноутбуку все работает. светодиод горит, плата пингуется.

     

    Почему они вместе не работают?

     

  5. Приношу извинения за грамматическую ошибку.

     

    Директивы размещения данных

    По смещению 0xb8c0 будет размещено 0xe890fffe, а по смещению 0xb8c4 соответственно 0xef18fffd.

     

    а что значат сами данные?

  6. добрый день.

     

    Помогите понять команду для микроконтроллера MK20DN512

     

    0000b8c0 <Message_BatteryChargerState>:
        b8c0:    e890fffe     .word    0xe890fffe
    
    0000b8c4 <Message_Node>:
        b8c4:    ef18fffd     .word    0xef18fffd

     

    Этот код получен из дизаскмбелора .elf файла.

    Что делает эта команда?

  7. дело в том, что передо мной стоит задача обновления устройства на базе ARM freescale.

     

    Но канал для обновления медленный. Поэтому принято решение обновлять частично.

    Я хочу создать программный модуль.

    вот map файл

    .mod1           0x0000cc60       0x7c
                    0x0000cc60                . = ALIGN (0x4)
    *(.name1.all)
    .name1.all     0x0000cc60       0x14 ./Sources/mod1.o
                    0x0000cc60                fn_all
    *(.name1.*)
    .name1.var     0x0000cc74        0x1 ./Sources/mod1.o
    *fill*         0x0000cc75        0x3 
    .name1.init    0x0000cc78       0x1c ./Sources/mod1.o
                    0x0000cc78                fn_init
    .name1.ld      0x0000cc94       0x24 ./Sources/mod1.o
                    0x0000cc94                fn_ld
    .name1.md      0x0000ccb8       0x24 ./Sources/mod1.o
                    0x0000ccb8                fn_md
    *(.name1)
                    0x0000ccdc                . = ALIGN (0x4)

     

    где функция fn_all () имеет фиксированный адрес и она вызывается из основной программы.

    а все остальные функции могут меняться .

    uint8_t fn_all () {
      fn_ld ();
      fn_md ();
      return 0;
    }

     

    такой модуль будет меньше чем вся программа.

    и замену производить только этого модуля.

    вот примерно так..

     

     

     

     

  8. Доброго времени суток.

    Я применяю ARM freescale.

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

    uint8_t fn_ld () __attribute__ ((section(".name1")));
    uint8_t fn_md () __attribute__ ((section(".name1")));
    uint8_t fn_init () __attribute__ ((section(".name1")));

    linker script

    ..............
        .name1 :
        {
         . = ALIGN(4);
        *(.name1)
        . = ALIGN(4);
        } > m_name1
    .............

     

    Подскажите, а возможно расположить в одной секции несколько функций и переменную?

    вот так

    uint8_t var __attribute__ ((section(".name1")));
    uint8_t fn_ld () __attribute__ ((section(".name1")));
    uint8_t fn_md () __attribute__ ((section(".name1")));
    uint8_t fn_init () __attribute__ ((section(".name1")));

     

    что для этого нужно поправить в коде или линковочном скрипте?

     

     

     

     

    attribute_electronix.zip

  9. Сформировать список символов с адресами после загрузки и скормить линкеру, чтобы своя программа могла обращаться к библиотеке.

    scifi,

    Вы могли бы вот об этом поподробнее, если не сложно.

    как можно "скормить" список символов линкёру? есть ли пример?

  10. Вот тут пишут, что не получится просто прилинковать к своей программе.

    Я пытаюсь прилинковать эту библиотеку к своей программе.

    В то же время динамические библиотеки загружаются и работают в обычных операционных системах. Можно разобраться в механизме загрузки и найти способ использовать библиотеку из своей программы.

    Вот, вот я тоже об этом подумал.

    Может кто подскажет, что почитать о механизме загрузки дин. биб.

    Вообще возможно ли загрузить эту библиотеку, без операционной системы? и использовать.

    может есть пример кода...

  11. Исходники найти очень сложно. Практически не возможно.

    Может есть вариант слинковать программу с динамической библиотекой?

    А компилятор, для ее компиляции применяли тот же, что и у меня.

    компилировали вот так

    arm-none-eabi-gcc -fpic -shared ...  -o libmod.so

    может часть секций оттуда удалить?

  12. Доброго времени суток.

     

    У меня небольшая программа в eclips.

    Я бы хотел к проекту подключить стороннюю динамическую библиотеку. libmod.so

    Подскажите это возможно?

    И какие ключи при этом нужно применять?

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

     

    Я применяю MK60DN512.

    Программу пишу с применением KSDK + MQX.

     

    к сложению у freescal мало демо примеров.

     

    мне нужны примеры работы с FlexCAN + fifo и прерываний от него. под MQX.

     

    Вы могли бы поделиться исходниками и ли ресурсами по работе с freescal flexCAN./

     

    заранее спасибо.

  14. я могу и через регистры самостоятельно проинициализировать модуль генератора тактовых частот.

    но от PE не получиться избавиться тк он генерирует таски для MQX и еще много полезных функций.

    Вот поэтому и появилось желание разобраться в нем более подробно.

  15. Доброго времени суток.

     

    Я использую Kinetis SDK + PE.

    для ARM mk60DN512.

    Я к проекту подключил Processor Experet

    провел все настройки клоков , периферии, ножек. затем я генерировал код для проекта.

     

    Подскажите, а в каком файле проводиться инициализация модуля клоков ? MCG configuration

     

     

    PE генерировал только структуры.

    /*! @brief OSC Initialization Configuration Structure */  
    osc_user_config_t clockMan1_osc0_Config = {
       .freq = 50000000U,
       .range = kOscRangeVeryHigh1,    
       .erefs = kOscSrcExt,
    
       /*! @brief Configuration for OSCERCLK */
       .oscerConfig = 
       {
           .enable = true,
           .enableInStop = false,
       },
    }; 
    

    ков?