Skip to content

compulab-yokneam/freertos-samples-bin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FreeRtos Examples

Pre-Built Demo applications

Basic setup

The demo applications are loaded from MMC to TCM.

  • U-Boot environment:

    setenv m4_loadaddr 0x7e0000
    setenv m4_start 'load mmc 1 0x48000000 ${m4_file}; cp.b 0x48000000 ${m4_loadaddr} 0x20000; dcache flush; bootaux ${m4_loadaddr}'
    saveenv
  • UART1 configured as the M4 debug console.

    • cl-som-imx8

      SB-iMX8M P20 header is in use.
      P20.P19 - UART1_TXD
      P20.P21 - UART1_RXD
      P20.P33 - GND
    • ucm-imx8m-mini

      SB-UCM-iMX8 P16 connector is in use.
    • mcm-imx8m-mini

      SB-MCM-iMX8-Mini P20 header is in use.
      P20.P9  - UART1_TXD
      P20.P11 - UART1_RXD
      P20.P31 - GND
  • UART2 configured as the M4 debug console.

    • iot-gate-imx8

      • The IED-BASE module should be installed on the SB-IOTGIMX8 base board.

      • IED-RS232 should be installed in socket A of the IE-BASE module.

        IED-BASE P2 header is in use.
        P2.P1 - UART2_TXD
        P2.P3 - UART2_RXD
        P2.P2 - GND

Demo Applications How To

  • hello_world.bin

    • U-Boot

      setenv m4_file hello_world.bin; run m4_start
    • M4 console

      hello world.
  • igpio_led_output.bin

    • U-Boot

      setenv m4_file igpio_led_output.bin; run m4_start
    • M4 console

      GPIO Driver example
      The LED is blinking.
      GPIO_DR& 0x30200000 ; PIN# 12
  • rpmsg_lite_str_echo_rtos_imxcm4.bin

    • U-Boot

      setenv m4_file rpmsg_lite_str_echo_rtos_imxcm4.bin; run m4_start; boot
    • M4 console

      RPMSG String Echo FreeRTOS RTOS API Demo...
      Nameservice sent, ready for incoming messages...
    • OS

      dmesg -c > /dev/null
      modprobe imx_rpmsg_tty
      dmesg
      [   41.088386] imx_rpmsg_tty virtio0.rpmsg-virtual-tty-channel-1.-1.30: new channel: 0x400 -> 0x1e!
      [   41.099673] Install rpmsg tty driver!
      [   41.108472] rpmsg_tty_cb68 65 6c 6c 6f 20 77 6f 72 6c 64 21              hello world!
    • M4 console

      Get Message From Master Side : "hello world!" [len : 12]
  • rpmsg_lite_pingpong_rtos_linux_remote.bin

    • U-Boot

      setenv m4_file rpmsg_lite_pingpong_rtos_linux_remote.bin; run m4_start; boot
    • M4 console

      RPMSG Ping-Pong FreeRTOS RTOS API Demo...
      RPMSG Share Base Addr is 0xb8000000
      Link is up!
      Nameservice announce sent.
    • OS

      • maunal load

        dmesg -c > /dev/null
        modprobe imx_rpmsg_pingpong
        dmesg
        [   30.420794] imx_rpmsg_pingpong virtio0.rpmsg-openamp-demo-channel.-1.30: new channel: 0x400 -> 0x1e!
        [   30.433498] get 1 (src: 0x1e)
         ....
        [   30.665919] get 101 (src: 0x1e)
        [   30.669131] imx_rpmsg_pingpong virtio0.rpmsg-openamp-demo-channel.-1.30: goodbye!
      • auto load

        # This approach shows how to make the system load the driver automatically at the boot time.
        # It is up to the user to prepare the boot environment that loads an m4-ping-pong demo before starting kernel.
        cat << eof > /etc/modules-load.d/imx_rpmsg_pingpong.conf
        imx_rpmsg_pingpong
        eof
        reboot
    • M4 console

      Waiting for ping...
      Sending pong...
       ....
      Ping pong done, deinitializing...
      Looping forever...

JTAG Debugging

  • Requirements:

  • How to:

    • Target is a ucm-imx8m-mini SOC.

      • U-Boot console:

        setenv m4_file hello_world.bin; run m4_start
    • Host is a development Linux machine.

      • BackEnd

        sudo openocd -f ~/openocd/tcl/interface/ftdi/dp_busblaster.cfg -f ~/openocd/tcl/board/nxp_mcimx8m-evk.cfg
      • Monitor

        • get connected to the openocd:4444, switch to the imx8mq.m4 and examine:

          telnet localhost 4444
          > targets imx8mq.m4
          > imx8mq.m4 arp_examine
          imx8mq.m4: hardware has 6 breakpoints, 4 watchpoints
          > targets
              TargetName         Type       Endian TapName            State
          --  ------------------ ---------- ------ ------------------ ------------
           0  imx8mq.a53.0       aarch64    little imx8mq.cpu         running
           1  imx8mq.a53.1       aarch64    little imx8mq.cpu         examine deferred
           2  imx8mq.a53.2       aarch64    little imx8mq.cpu         examine deferred
           3  imx8mq.a53.3       aarch64    little imx8mq.cpu         examine deferred
           4* imx8mq.m4          cortex_m   little imx8mq.cpu         running
           5  imx8mq.ahb         mem_ap     little imx8mq.cpu         running
      • Front End

        • get connected to the openocd:3334, resume the m4:

          ${CROSS_COMPILE}gdb /path/to/igpio_led_output.elf
          (gdb) target remote :3334
          Remote debugging using :3334
          delay () at /path/to/rtos/freertos/imx8mm/boards/ucm-imx8m-mini/driver_examples/gpio/led_output/gpio_led_output.c:41
          41          for (i = 0; i < EXAMPLE_DELAY_COUNT; ++i)
          (gdb) continue
          Continuing.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •