i.MXプロセッサ ナレッジベース

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

i.MX Processors Knowledge Base

ディスカッション

ソート順:
New i.mx6Q core board from OpenEmbed.com
記事全体を表示
In every i.MX BSP you will find a pre-compiled binary to flash on your board, but if you need to recompile, this tutorial will be useful. Redboot source code and pre-built images for many platforms are available on Linux Board Support Package (BSP). As an example, let's compile redboot version 2009_10 that comes with Freescale Linux BSP.   For detailed information about Redboot, check <redboot_folder>/doc Locate the file ecostools.tar.gz and decompress it on /opt directory. (Create this folder if it is not there) $ cd /opt $ sudo tar zxvf <redboot_folder>/tools/ecos_config_tools.tar.gz $ sudo tar zxvf <redboot_folder>/tools/arm-2008q1.tar.gz This creates /opt/ecostools directory with two subdirectories: arm-2008q1 -- GNU tools for compiling, linking, etc. tools -- mainly to have ecosconfig utility program Add /opt/arm-2008q1/bin and /opt/tools/bin to your environment PATH variable. $ export PATH=$PATH:/opt/arm-2008q1/bin:/opt/tools/bin Generating RedBoot Image Decompress the ecos-trunk-080727.tar.bz2 base line source code into <redboot_folder>/src. There should be a 'packages' directory under <redboot_folder>/src/ecos if it is done correctly. $ tar xjvf ecos-trunk-080727.tar.bz2 Go to ecos subdirectory and apply the patches; $ cd ecos $ bunzip2 -c patch-redboot-200910-base.bz2 | patch -p1 The above command assumes the patch file is under the same directory as the <redboot_folder>/src/ecos. Specify the path name for the patch file if necessary. Apply the patch for specific platform. In this case, the used patch is: patch-redboot-200834-mx3.bz2 $ patch-redboot-200910-mx3.bz2 | patch -p1 Define the ECOS_REPOSITORY. On <redboot_folder>, put the entire (absolute) path to redboot folder. I.e. ~/<redboot_folder>/src/ecos/packages $ export ECOS_REPOSITORY=<redboot_folder>/src/ecos/packages To build redboot (for i.MX31 in this example), create a new folder in order to have a clean build: $ mkdir new_redboot $ cd new_redboot $ ecosconfig new mx31_3stack redboot $ ecosconfig import $ECOS_REPOSITORY/hal/arm/mx31/3stack/current/misc/redboot_ROMRAM.ecm $ ecosconfig tree $ make This creates the Redboot image (redboot.bin) under install/bin directory. This image can run from either SDRAM or flash. Note: You can change the board MACH-TYPE at this file: src/ecos/packages/hal/arm/mx27/ads/current/cdl/hal_arm_board.cdl
記事全体を表示
Continental Yocto Training Author:           Leonardo Sandoval Material: PDF Tutorial: i.MX Yocto Project: Freescale Yocto Project Tutorial Provided Virtual Machine Wandboard Dual Wandboard - Freescale i.MX6 ARM Cortex-A9 Opensource Community Development Board - BLOG Tasks: Task 1: Build and Boot your board in N-steps     1.    Create a new folder ($ mkdir conti-fsl-community-bsp)     2.    Follow all N-steps (from the tutorial, page 2) EXCEPT the baking     3.     Baking has been done for you, so assume that the bake is done!     4.    Flash:         conti-fsl-community-bsp $ cd         $ cd fsl-community-bsp/build         build $ dd if=tmp/deploy/images/core-image-minimal-wandboard-dual.sdcard of=/dev/sdb bs=1M         build $ sync # NEVER FORGET THIS STEP, You have been warned!     5.    Boot         Task 2:    Folders     1. Tree structure & size         fsl-comunity-bsp $ tree -d -L 2         fsl-comunity-bsp $ du -h --max-depth=2 Task 3:    Architecture Task 4:    Metadata Task 5:    Config files         build $ cat conf/local.conf         build $ cat conf/bblayer.conf Task 6:     Layers build $ bitbake-layers show-layers sources $ cat meta-fsl-arm/conf/layer.conf Task 7:    Adding an existing layer     1. Clone the repo sources $ git clone https://github.com/lsandoval/meta-fsl-test.git     2. Add the layer to build/bblayers.conf sources $ cd ../build build $ vi conf/bblayers.conf     3. Browse the new layer files     4. Compile the kernel build $ bitbake -f -c compile linux-wandboard build $ bitbake -c deploy linux-wandboard     5. Flash    build $ sudo mkdir /media/boot         build $ sudo mount /dev/sdb1 /media/boot         build $ cp tmp/deploy/images/uImage /media/boot         build $ sudo umount /media/boot     6. Boot Task 8: (Optional) Check the core-image-minimal-test image, bake and flash it. Run the 'helloworld' app Task 9: Q&A
記事全体を表示
RidgeRun provides a fully featured Embedded Linux Software Development Kit for Freescale iMX6 based applications processors. Freescale iMX6 platform delivers high performance, power efficient applications processors with a robust support network and software portfolio including open source. The complete platform allows for differentiation and rapid development of applications from wireless handsets to other multimedia-enhanced devices. The i.MX6 series processors are a scalable multicore platform that includes single-, dual- and quad-core families based on the ARM® Cortex™-A9 architecture. This architecture is a robust - cross industry and product platform. Whether your product is targeted at consumer electronics, industrial, automotive or security related, this flexible, scalable architecture combined with RidgeRun's easy-to-use SDK's and extension products allows you to concentrate your effort of differentiating features and not product infrastructure. FEATURES Boot loader 2013.07 Linux kernel 3.0.35-4.0.0 Gstreamer-0.10.36 Freescale gst-plugins 3.0.7 Hardware based audio and video codecs SD and NFS file system support Boot from SD3, SD4 or SPI-NOR with an easy installation (Boundary devices boards only) Toolchain to linaro 2012.03 for software floating point and 2013.03 for hardware floating point support For more info please contact: [email protected] or Please Click -> Contact Us
記事全体を表示
The i.MX27 Application Development System (MCIMX27ADSE) is a development tool which is designed to run software applications designed for the i.MX27 processor. Features i.MX27 Multimedia Application Processor Two clock-source crystals, 32 KHz and 26 MHz Power management & Audio IC (MC13783) included battery charging, 10bit ADC, buck switchers, boost switcher, regulators, amplifiers, CODEC, SSI audio bus, real time clock, SPI control bus, USB OTG transceiver & touchscreen interface Multi-ICE debug support Two 512Mbit DDR-SDRAM devices, configured as one 128MB, 32-bit device One 256Mbit Burst Flash with 128Mbit Pseudo Static RAM (PSRAM) memory device, configured as one 16MB flash with 8MB PSRAM, 16-bit device An single board system with connections for LCD display panel, Keypad and Image sensor. Complex Programmable Logic Device (CPLD) for reducing glue logic interface Software readable board revisions Configuration and user definable DIP switches Two SD/MMC, MS memory card connectors PCMCIA & ATA Hard Disk Drive (HDD) Two RS-232 transceivers and DB9 connectors (one configured for DCE and one for DTE operation) supporting on-chip UART ports External UART with RS-232 transceiver and DB9 connector Infrared transceiver that conforms to Specification 1.4 of the Infrared Data Association USB Host (HS & FS), USB OTG (HS & HS) interface Separate LCD panel assembly that connects to the main board Separate keypad unit with 36 push button keys Separate CMOS Image Sensor Card A 3.5 mm headset jack, a 3.5 mm line out jack, a 3.5 mm line in jack, a 3.5 mm microphone jack and a 2.5 mm microphone and headset jack Cirrus Logic CS8900A-CQ3Z Ethernet controller (10BASE-T), with RJ-45 connector AMD AM79C874 NetPHY (10BASE-T & 100BASE-X), with RJ-45 connector Two 32 × 3-pin DIN expansion connectors with most i.MX27 I/O signals Variable resistor for emulation of a battery voltage level NAND Flash card (Plugs into Main Board) which is included in the ADS kit LED indicators for power, Ethernet activity, and two LEDs for user defined status indication Universal power supply with 5 volt output @ 5 Amperes USB, RS-232 and RJ45 cables available in kit Kit Contains a main board an LCD display panel a keypad a NAND flash card an image sensor a TV encoder card, etc It supports application software, target-board debugging or optional extra memory.
記事全体を表示
Tel Aviv, December 2013   Variscite announces the support of Yocto over its iMX6 System-on-Modules   Variscite, a leading manufacturer of embedded solutions and System-on-Modules and Freescale’s Connected Partner, is pleased to announce the support of Yocto v4.1 Dora release over all Variscite’s iMX6 embedded products. Variscite develops, produces and manufactures a powerful range of System-on-Modules (SoM) and Single-Board-Computers (SBC), consistently setting market benchmarks in terms of speed and innovation. Today Variscite’s cost sensitive high performance portfolio serves over a thousand c ustomers in over 50 countries worldwide. The Yocto project was announced in 2010 to enable the creation of Linux distributions for embedded software that are independent of the underlying architecture of the embedded software itself. Variscite’s support of Yocto over its iMX6 solutions aligns with the company’s strategy to provide its customers with a complete set of leading embedded software and hardware solution, reducing development risk, cost and time-to-market. Variscite’s Yocto v4.1 Dora release supports iMX6 Solo, Dual Lite, Dual and Quad processors with a variety of speed grades, memory sizes and interfaces. More information can be found in: http://www.variwiki.com/index.php?title=Yocto_V4.1_Dora#Supported_hardware_and_features   About Variscite:   In less than a decade Variscite has taken a leading position in the System-on-Modules (SoM) design and manufacturing market. A trusted provider of development and consulting services for a variety of embedded platforms, Variscite transforms clients’ visions into successful products. Learn more about Variscite by visiting: www.variscite.com or contacting: Variscite Sales, [email protected] , +972-9-9562910
記事全体を表示
The ARD has the VGA output hw multiplexed with the on board Eth controlling, on jumpers J14 and J16. If using the VGA out one option for network is to use an USB/Eth adapter. To enable this (tested on BSP 11.05 - 2.6.35): 1. Find out the driver for the adapter you are using. You can connect it to your Linux host for that. $ lsusb ... Bus 002 Device 017: ID 0b95:772a ASIX Electronics Corp. ... $ dmesg | tail ... [3799653.662846] eth2: register 'asix' at usb-0000:00:1d.7-2, ASIX AX88772 USB 2.0 Ethernet, 00:60:6e:00:02:7a ... 2. Enable the driver on the target's kernel: - ./ltib -c - On Ltib menu, select "[*] Configure the Kernel" - On the kernel menuconfig select the driver, in this case: CONFIG_USB_NET_AX8817X located at: -> Device Drivers                                                       -> Network device support (NETDEVICES [=y])         -> USB Network Adapters             -> Multi-purpose USB Networking Framework (USB_USBNET [=y]) 3. Program the kernel to SD: sudo dd if=rootfs/boot/uImage of=/dev/sdd bs=512 seek=2k 4. Set U-boot to load the kernel from the SD and NFS: MX53-ARD-DDR3 U-Boot > set bootcmd 'run bootcmd_sd_nfs' MX53-ARD-DDR3 U-Boot > set bootcmd_sd_nfs 'run bootargs_nfs;run load_kernel;bootm' MX53-ARD-DDR3 U-Boot > set load_kernel 'mmc read 0 ${loadaddr} 0x800 0x1f00' Here you may change the ip from "dhcp" to a fixed address if you are connected directly to host. MX53-ARD-DDR3 U-Boot > set bootargs_nfs 'set bootargs console=ttymxc0,115200 root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp' MX53-ARD-DDR3 U-Boot > set serverip 192.168.2.100 MX53-ARD-DDR3 U-Boot > set nfsroot '/tftpboot/rootfs_ard' MX53-ARD-DDR3 U-Boot > save Saving Environment to MMC... Writing to MMC(0)... done 5. Connect the USB/Eth adapter to the USB port (USB1-J30 or USB2-J31). Instructions to setup the host for NFS can be found on the following page: All Boards NFS.
記事全体を表示
The i.MX21 Application Development System (MCIMX21ADSE) is a development tool which is designed to run software applications designed for the i.MX21 processor. Features   i.MX21 Processor   Two clock-source crystals, 32.768 KHz and 26 MHz   Power connector for +5.0-volts in from an external, regulated power supply, an in-line fuse, and a power on/off switch.   Voltage regulators that step down the 5.0-volt input to Vcc (3.0-volts), 2.5-volts, 1.8-volts, and 1.5-volts.   Multi-ICE debug support   Two 8M × 16-bit Burst Flash memory devices, configured as one 32MB, 32-bit device   Two 16M × 16-bit SDRAM devices, configured as one 64MB, 32-bit device   High speed expansion connectors for optional add on cards   Two-board system: modular CPU board plugs into Base board; Base board has connections for LCD display panel and keypad and TV encoder card   Memory mapped expansion I/O   Configuration and user definable DIP switches   SD/MMC memory card connector   Two RS232 transceivers and DB9 connectors (one configured for DCE and one for DTE operation) supporting on-chip UART ports   External UART with RS232 transceiver and DB9 connector   IrDA transceiver that conforms to Specification 1.4 of the Infra-red Data Association   USB OTG (On The Go) interface transceiver and USB mini AB connector   Separate LCD panel assembly with a ribbon cable that connects to the Base board and interfaces directly with the M9328MX21ADS   Touch panel controller for use with the LCD   Separate Keypad unit with 36 push button keys   Separate CMOS Image Sensor Card   Audio CODEC includes an 11.28MHz crystal oscillator, a 3.5mm audio input jack, a 3.5mm microphone jack, and a 3.5mm headphone jack   Cirrus Logic CS8900A Ethernet controller, with RJ-45 connector for connecting to a system hub   Two 32 × 3-pin DIN expansion connectors with most i.MX21 I/O signals   Variable resistor for emulation of a battery voltage level   NAND Flash card (Plugs into CPU)   LED indicators for power, external bus activity, Ethernet activity, and two LEDs for user defined status indiction   Universal power supply with 5.0-volt output @ 2.4A   USB cable   RS232 serial cable   Two RJ-45 Ethernet cables, network and crossover
記事全体を表示
   Recently, some customers encountered the problem that compilation failed when compiling l4.14.98-2.0.0 fsl-imx-waylan + fsl-image-qt5-validation-imx in Ubuntu 18.04 environment. In fact, compiling QT image is a very time-consuming process, especially in the process of compiling, errors need to be handled, which will be more time-consuming. The following compilation took four days to complete. 1. Environment Linux Host : ubuntu 18.04 LTS Virtual Machine: VMware workstatin Player 12 images: fsl-imx-waylan + fsl-image-qt5-validation-imx Hardware: imx8mqevk Linux BSP verison: L4.14.98-2.0.0 2. Steps (1)Installation of Ubuntu 18.04 2.Update software 3. Installing software package for compiling BSP # sudo apt-get install flex # sudo apt-get install bison # sudo apt-get install gperf # sudo apt-get install build-essential # sudo apt-get install zlib1g-dev # sudo apt-get install lib32ncurses5-dev # sudo apt-get install x11proto-core-dev # sudo apt-get install libx11-dev # sudo apt-get install lib32z1-dev # sudo apt-get install libgl1-mesa-dev # sudo apt-get install tofrodos # sudo apt-get install python-markdown # sudo apt-get install libxml2-utils # sudo apt-get install xsltproc          # sudo apt-get install uuid-dev:i386 liblzo2-dev:i386 # sudo apt-get install gcc-multilib g++-multilib # sudo apt-get install subversion # sudo apt-get install openssh-server openssh-client # sudo apt-get install uuid uuid-dev # sudo apt-get install zlib1g-dev liblz-dev # sudo apt-get install liblzo2-2 liblzo2-dev # sudo apt-get install lzop # sudo apt-get install git-core curl # sudo apt-get install u-boot-tools # sudo apt-get install mtd-utils # sudo apt-get install android-tools-fsutils # sudo apt-get install openjdk-8-jdk # sudo apt-get install device-tree-compiler # sudo apt-get install aptitude # sudo aptitude install libcurl4-openssl-dev nss-updatedb   From i.MX_Yocto_Project_User's_Guide.pdf: # sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat libsdl1.2-dev   4. Downloading Yocto BSP according to steps in i.MX_Yocto_Project_User's_Guide.pdf 5.Compiling L4.14.98-2.0.0 BSP # cd ~/imx-yocto-bsp # DISTRO=fsl-imx-wayland MACHINE=imx8mqevk source fsl-setup-release.sh -b build-wayland # bitbake fsl-image-qt5-validation-imx In the process of compilation, there have been many "fetch errors", which are caused by disconnection or timeout of network connection. We just need to run the bitmake command again in the build Wayland subdirectory to continue the compilation. # bitbake fsl-image-qt5-validation-imx          Fetching errors below were what I encountered:          The following picture is to re-run “bitbake fsl-image-qt5-validation-imx” after fetch errors occurred.          In order to improve the speed of compilation , I re-configured vmware player, assigning 6 CPU cores for Ubuntu.          Compilation is a long and arduous process. It took 4 days to compile normally with error handling. Finally, the compilation was completed. NXP TIC Team Weidong Sun 2019-11-02
記事全体を表示
The ads7846 driver that is distributed with yocto 1.6 (Daisy, Linux 3.10.17) does not support device tree configuration hooks. Attached is a patch for the ads7846 touchscreen driver to support device tree. Also added to the driver are hooks to ignore the requirement for a voltage regulator configuration.
記事全体を表示
[中文翻译版] 见附件   原文链接: https://community.nxp.com/docs/DOC-343518 
記事全体を表示
If Android device has Internet access, it can download and install TTS library automatically. However, sometimes in a developer environment, Internet may not be available. Download TTS library from Eyes-Free project, [1] Unzip all files into VFAT partition (of SDCard). It will create two directories: daiane@b19406:/media$ sudo ls disk-3/ -l total 231552 drwx------ 6 daiane root      4096 2010-05-24 15:46 espeak-data drwx------ 2 daiane root      4096 2010-05-24 15:46 svox daiane@b19406:/media$ mount /dev/sdd5 on /media/disk-1 type ext3 (rw,nosuid,nodev,uhelper=hal) /dev/sdd2 on /media/system type ext3 (rw,nosuid,nodev,uhelper=hal) /dev/sdd6 on /media/disk-2 type ext3 (rw,nosuid,nodev,uhelper=hal) /dev/sdd1 on /media/disk-3 type vfat (rw,nosuid,nodev,uhelper=hal,shortname=mixed,uid=1001,utf8,umask=077,flush) /dev/sdd4 on /media/recovery type ext3 (rw,nosuid,nodev,uhelper=hal)
記事全体を表示
Using the FEC on U-boot 1 - Start by programming U-boot into the SD or NAND, click here for SD or here for NAND. 2 - Boot the image programed on Step 1, for the SD Card: Personality Board settings:                   12345678 SW22 -> 00000000 SW21 -> 11000000  Debug Board settings:   SW5,6,7,8,9,10 -> OFF                    12345678   SW4 -> 10000001 For NAND:                              12345678   SW22 -> 00100000   SW21 -> 10011000  Debug Board settings:   SW5,6,7,8,9,10 -> OFF                      12345678     SW4 -> 10000001 Stop at u-boot prompt: MX25 U-Boot > 3 - Configure u-boot networking variables, replace the values according to your network configuration: MX25 U-Boot > setenv serverip 192.168.1.1 MX25 U-Boot > setenv ipaddr 192.168.1.2 MX25 U-Boot > setenv eth1addr 00:04:9f:00:3b:33 Update "ethact" var to enable the FEC. MX25 U-Boot > setenv ethact FEC0 4 - With the Ethernet cable connected, start a tftp transfer: MX25 U-Boot > tftpboot 0x80800000 uImage_mx25 FEC: enable RMII gasket Using FEC0 device TFTP from server 192.168.1.1; our IP address is 192.168.1.2 Filename 'uImage_mx25'. Load address: 0x80800000 Loading: #################################################################              #################################################################              #################################################################              #################################################################              #################################################################              #################################################################              ##### done Bytes transferred = 2022396 (1edbfc hex) 5 - If you transfered the kernel image, you can boot it (Don't forget to update bootargs): MX25 U-Boot > bootm 0x80800000
記事全体を表示
[中文翻译版] 见附件   原文链接: https://community.nxp.com/docs/DOC-343521 
記事全体を表示
[中文翻译版] 见附件   原文链接: https://community.nxp.com/docs/DOC-343079 
記事全体を表示
Question: After a JTAG Reset with his GHS MULTI Probe on i.MX6 Hardware, read the SRC_SRSR register the corresponding reset source bits (JTAG reset) are not set. The contents: SRSR = 0x1      WARM Boot = 0x0      jtag_sw_rst = 0x0      jtag_rst_b = 0x0      wdog_sw_rst = 0x0      ipp_user_reset_b = 0x0      cpu_reset_b = 0x0      ipp_reset_b = 0x1 Tried to reproduce this with my DSTRAM probe, and issued a "reset reset.system" command in DS-5 Debugger but Program Counter stays at current vaule. Obviously my SRSR bits don't change either. Answer: Seems " jtag_rst_b" is a HW reset, please check the connection between JTAG port and i.Mx6 JTAG_TRST pin. And confirm the waveform on rest pin when JTAG reset run.
記事全体を表示
Recently many customers faced the issue about connecting the git.freesacle .com failed when they built old bsp version like 4.1.15 or 3.14.52,  when the customer repo init according to the yocto user guide, they get the error message like : repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-4.1-krogoth manifests:  escale.com[0: 192.88.156.202]: errno=Connection refused  fatal: cannot obtain manifest git://git.freescale.com/imx/fsl-arm-yocto-bsp.git ///// git clone git://git.freescale.com:9418/imx/fsl-arm-yocto-bsp.git -b imx-4.1.15-1.0.0_ga Cloning into 'fsl-arm-yocto-bsp'... fatal: unable to connect to git.freescale.com: git.freescale.com[0: 192.88.156.202]: errno=Connection refused the reason is that the old bsp source code was moved to "https://source.codeaurora.org/external/imx", customer needs to change "git://git.freescale.com/imx"  to "https://source.codeaurora.org/external/imx", for new repo init commands, try to use the commands like “repo init -u https://source.codeaurora.org/external/imx/fsl-arm-yocto-bsp -b <branch> [-m <manifest>]” for example: 4.1.15_1.0.0: repo init -u https://source.codeaurora.org/external/imx/fsl-arm-yocto-bsp -b imx-4.1.15-1.0.0_ga 4.1.15_2.0.0: repo init -u https://source.codeaurora.org/external/imx/fsl-arm-yocto-bsp -b imx-4.1-krogoth -m imx-4.1.15-2.0.0.xml 4.1.15_2.1.1: repo init -u https://source.codeaurora.org/external/imx/fsl-arm-yocto-bsp -b imx-4.1-krogoth -m imx-4.1.15-2.1.1.xml then you can "repo sync" and "bitbake", but some customers still has the connection error on building firmware-imx package, the error message like : ERROR: firmware-imx-1_5.4-r0 do_fetch: Fetcher failure: Fetch command failed with exit code 128, output: Cloning into bare repository '/opt/yocto/fsl-release-bsp/downloads//git2/git.freescale.com.imx.imx-firmware.git'... fatal: unable to connect to git.freescale.com: git.freescale.com[0: 192.88.156.202]: errno=Connection refused ERROR: firmware-imx-1_5.4-r0 do_fetch: Function failed: Fetcher failure for URL: 'git://git.freescale.com/imx/imx-firmware.git;branch=master;destsuffix=/opt/yocto/fsl-release-bsp/fsl_build_x11/tmp/work/cortexa9hf-neon-mx6qdl-poky-linux-gnueabi/firmware-imx/1_5.4-r0/firmware-imx-5.4/git'. Unable to fetch URL from any source. this reason is that 4.1.15 needs to download git2 package from git.freescale.com, then I uploaded the firmwar-imx git2 package, try to unzip first, then put packages under downloads/git2, then "bitbake firmware-imx" again
記事全体を表示
Instead to use gst-launch to play your audio/video media you can create an application do to that. This application was tested in iMX27ADS but should to work on iMX27PDK First execute LTIB (./ltib -c) and select these packages: all gstreamer plugin, alsa-utils and libmad. Create your file code (i.e.: playvideo.c): #include <gst/gst.h> #include <glib.h> #include <string.h> static GstElement *source, *demuxer, *vdqueue, *adqueue, *vdsink, *adsink, *decvd, *decad; void on_pad_added (GstElement *element, GstPad *pad) {         g_debug ("Signal: pad-added");         GstCaps *caps;         GstStructure *str;         caps = gst_pad_get_caps (pad);         g_assert (caps != NULL);         str = gst_caps_get_structure (caps, 0);         g_assert (str != NULL);         if (g_strrstr (gst_structure_get_name (str), "video")) {                 g_debug ("Linking video pad to dec_vd");                 // Link it actually                 GstPad *targetsink = gst_element_get_pad (decvd, "sink");                 g_assert (targetsink != NULL);                 gst_pad_link (pad, targetsink);                 gst_object_unref (targetsink);         }         if (g_strrstr (gst_structure_get_name (str), "audio")) {                 g_debug ("Linking audio pad to dec_ad");                 // Link it actually                 GstPad *targetsink = gst_element_get_pad (decad, "sink");                 g_assert (targetsink != NULL);                 gst_pad_link (pad, targetsink);                 gst_object_unref (targetsink);         }         gst_caps_unref (caps); } static gboolean bus_call (GstBus    *bus,           GstMessage *msg,           gpointer    data) {   GMainLoop *loop = (GMainLoop *) data;   switch (GST_MESSAGE_TYPE (msg)) {     case GST_MESSAGE_EOS:       g_print ("End of stream\n");       g_main_loop_quit (loop);       break;     case GST_MESSAGE_ERROR: {       gchar  *debug;       GError *error;       gst_message_parse_error (msg, &error, &debug);       g_free (debug);       g_printerr ("Error: %s\n", error->message);       g_error_free (error);       g_main_loop_quit (loop);       break;     }     default:       break;   }   return TRUE; } int main (int  argc,       char *argv[]) {   GMainLoop *loop;   GstElement *pipeline;   GstBus *bus;   /* Initialisation */   gst_init (&argc, &argv);   loop = g_main_loop_new (NULL, FALSE);   /* Check input arguments */   if (argc != 2) {     g_printerr ("Usage: %s <Video H264 filename>\n", argv[0]);     return -1;   }   /* Create gstreamer elements */   pipeline      = gst_pipeline_new ("media-player");   source        = gst_element_factory_make ("filesrc","file-source");   demuxer      = gst_element_factory_make ("mfw_mp4demuxer","avi-demuxer");   decvd        = gst_element_factory_make ("mfw_vpudecoder", "video-decoder");   decad        = gst_element_factory_make ("mad", "mp3-decoder");   vdsink        = gst_element_factory_make ("mfw_v4lsink",    "video-sink");   vdqueue      = gst_element_factory_make ("queue",            "video-queue");   adqueue      = gst_element_factory_make ("queue",            "audio-queue");   adsink        = gst_element_factory_make ("fakesink",        "audio-sink");   g_object_set (decvd, "codec-type", "std_avc", NULL);   if (!pipeline || !source || !demuxer || !decvd || !decad || !vdsink || !vdqueue || !adqueue || !adsink) {     g_printerr ("One element could not be created. Exiting.\n");     return -1;   }   /* Set up the pipeline */   /* we set the input filename to the source element */   g_object_set (G_OBJECT (source), "location", argv[1], NULL);   /* we add a message handler */   bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));   gst_bus_add_watch (bus, bus_call, loop);   gst_object_unref (bus);   /* we add all elements into the pipeline */   /* file-source | ogg-demuxer | vorbis-decoder | converter | alsa-output */   gst_bin_add_many (GST_BIN (pipeline),                     source, demuxer, decvd, decad, adqueue, vdqueue, vdsink, adsink,  NULL);   /* we link the elements together */   /* file-source -> ogg-demuxer ~> vorbis-decoder -> converter -> alsa-output */   gst_element_link (source, demuxer);   gst_element_link (decvd, vdqueue);   gst_element_link (vdqueue, vdsink);   //gst_element_link (decad, adqueue);   gst_element_link (adqueue, adsink);   g_signal_connect (demuxer, "pad-added", G_CALLBACK (on_pad_added), NULL);   /* note that the demuxer will be linked to the decoder dynamically.     The reason is that Ogg may contain various streams (for example     audio and video). The source pad(s) will be created at run time,     by the demuxer when it detects the amount and nature of streams.     Therefore we connect a callback function which will be executed     when the "pad-added" is emitted.*/   /* Set the pipeline to "playing" state*/   g_print ("Now playing: %s\n", argv[1]);   gst_element_set_state (pipeline, GST_STATE_PLAYING);   /* Iterate */   g_print ("Running...\n");   g_main_loop_run (loop);   /* Out of the main loop, clean up nicely */   g_print ("Returned, stopping playback\n");   gst_element_set_state (pipeline, GST_STATE_NULL);   g_print ("Deleting pipeline\n");   gst_object_unref (GST_OBJECT (pipeline));   return 0; } Create a directory inside your ltib directory to compile your source code: $ mkdir ~/your-ltib-dir/rpm/BUILD/gst Enter on LTIB shell mode: $ ./ltib -m shell Entering ltib shell mode, type 'exit' to quit LTIB> Enter in your application dir: LTIB> cd rpm/BUILD/gst/ Compile your application: LTIB> gcc -Wall $(pkg-config --cflags --libs gstreamer-0.10) playvideo.c -o playvideo If everything worked file you will get a "playvideo" arm binary: LTIB> file playvideo playvideo: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, dynamically linked (uses shared libs), not stripped Now just copy it to ~/your-ltib-dir/rootfs/home. Start your board using this rootfs and execute: root@freescale ~$ cd /home/ root@freescale /home$ ./playvideo your-file-h264-mp3.avi Now playing: your-file-h264-mp3.avi Running...
記事全体を表示
It is suggested to create a layer when creating or modifying any metadata file (recipe, configuration file or class). The main reason is simple: modularity. Follow these steps 1. To have access to Yocto scripts, setup the enviroment from the BASE folder fsl-community-bsp $ . setup-environment build 2. Move to the place you want to create your layer and choose a name (e.g. `fsl-custom`) sources $ yocto-layer create fsl-custom # Answer the questions. Make sure the priority is set correctly (higher numbers, # higher priorities). Set the priority equal to the lowest already present, except # when you have introduce a new recipe with the same name as other and want to shadow # the original one. 3. Add any metadata content. Suggestion: Version the layer with Git and upload your local git repo to a server 4. Edit and add the layer to the `build/conf/bblayers.conf` file 5. To verify that your layer is *seen* by BitBake, run the following command under the build folder build $ bitbake-layers show-layers This document was generated from the following discussion: i.MX Yocto Proyect: How can I create a new Layer?
記事全体を表示
The Patch release for i.MX 6UL 9x9 package is now available on www.freescale.com ·        Files available: Name Description i.MX_6_Yocto_Project_L3.14.38-6UL_Patch_Release_Notes.pdf Releases Notes for Linux 3.14.38_6UL-patch L3.14.38_6UL9x9-Patch.tar.gz BSP Binary Demo Image for i.MX 6UL 9x9 EVK L3.14.38_6UL9x9_patch_mfg-tools.tar.gz Manufacturing Toolkit for Linux 3.14.38_6UL9x9-Patch Release ·        Target board: o  i.MX 6UltraLite 9x9 EVK board ·        More detailed patch description: Please consult the release notes document.
記事全体を表示