Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
LX2160A プラットフォーム上の 2 番目の DDR コントローラを無効にします このドキュメントでは、2 番目の DDR コントローラをディセーブルにするためのソフトウェアの設定方法について説明します。 LX2160AプラットフォームでのみDDR1を使用し、DDR2のクロックを無効にするようにRCWを構成することが含まれます。 DEVDISR レジスタを使用し、HN-F SAM 制御レジスタを設定して DDR2 を 100 未満で無効にします。 CodeWarriorおよびatfソフトウェアのコーディング。 1. DEVDISRレジスタを使用してDDR2のクロックを無効にするようにRCWを設定します 2. CodeWarriorでDDR2を無効にするためのHN-F SAM制御レジスタの構成 3. 特定のDDRコントローラを無効にするようにHN-F SAM制御レジスタを設定するためのATFコーディング
記事全体を表示
How to recover LS Series processors boards using CodeWarrior and LS1012AFRWY. Quick start to recover a ATF in a damaged storage device. In this case, a blanked LS1012AFRWY QSPI, which is the only BL2 and FIP storage device on board, is restored using CW TAP, CW 4NET and Flex-Installer. Download firmware using flex-installer nxplayerscape@nxp-global-cas:~/Downloads/josephs-downloads/Flex-Installer-LDP$ flex-installer -i download -f firmware_ls1012afrwy_qspi.boot Please specify correct '-m ' Valid machine name: ls1012ardb ls1012afrwy ls1021atwr ls1028ardb ls1043ardb ls1046ardb ls1046afrwy ls1088ardb_pb ls2088ardb lx2160ardb_rev2 lx2162aqds  imx6qpsabresd imx6qsabresd imx6sllevk imx7ulpevk imx8mmevk imx8mnevk imx8mpevk imx8mqevk imx8qmmek imx8qxpmek imx8ulpevk  nxplayerscape@nxp-global-cas:~/Downloads/josephs-downloads/Flex-Installer-LDP$ flex-installer -i download -f firmware_ls1012afrwy_qspi.boot -m ls1012afrwy  Downloading http://www.nxp.com/lgfiles/sdk/sdk2110/firmware_ls1012afrwy_qspi.boot ...   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                  Dload  Upload   Total   Spent    Left  Speed   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0 -rw-rw-r-- 1 nxplayerscape nxplayerscape 0 abr  6 13:27 firmware_ls1012afrwy_qspi.boot  Downloading http://www.nxp.com/lgfiles/sdk/sdk2110/boot_LS_arm64_lts_5.10.tgz ...   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                  Dload  Upload   Total   Spent    Left  Speed 100  342M  100  342M    0     0  5695k      0  0:01:01  0:01:01 --:--:-- 5752k  Downloading http://www.nxp.com/lgfiles/sdk/sdk2110/rootfs_sdk2110_ubuntu_main_arm64.tgz ...   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                  Dload  Upload   Total   Spent    Left  Speed 100  809M  100  809M    0     0  5641k      0  0:02:26  0:02:26 --:--:-- 3109k Downloaded distro images [Done] nxplayerscape@nxp-global-cas:~/Downloads/josephs-downloads/Flex-Installer-LDP$ flex-installer -i download -f firmware_ls1012afrwy_qspiboot.img Please specify correct '-m ' Valid machine name: ls1012ardb ls1012afrwy ls1021atwr ls1028ardb ls1043ardb ls1046ardb ls1046afrwy ls1088ardb_pb ls2088ardb lx2160ardb_rev2 lx2162aqds  imx6qpsabresd imx6qsabresd imx6sllevk imx7ulpevk imx8mmevk imx8mnevk imx8mpevk imx8mqevk imx8qmmek imx8qxpmek imx8ulpevk  nxplayerscape@nxp-global-cas:~/Downloads/josephs-downloads/Flex-Installer-LDP$ flex-installer -i download -f firmware_ls1012afrwy_qspiboot.img -m ls1012afrwy  Downloading http://www.nxp.com/lgfiles/sdk/sdk2110/firmware_ls1012afrwy_qspiboot.img ...   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                  Dload  Upload   Total   Spent    Left  Speed 100 1617k    0 1617k    0     0  1529k      0 --:--:--  0:00:01 --:--:-- 1529k -rw-rw-r-- 1 nxplayerscape nxplayerscape 1656690 oct 25  2021 firmware_ls1012afrwy_qspiboot.img boot_LS_arm64_lts_5.10.tgz already exists rootfs_sdk2110_ubuntu_main_arm64.tgz already exists Downloaded distro images [Done] Create a PBL project Note: Need to create a custom board connection based on: How to create a CWTAP to LS Series Processors JTAG-Link. Try to dump 16 MB of memory. Look for downloaded firmware Flash it to qspi using flash programmer. Press the reset button on LS1012AFRWY. Doesn't need to disconnect CWTAP. Hope this helps when no storage device has a valid binary to get to U-boot, when a board is running U-Boot or Tiny Distro, it can update any SW easily. Ask any questions you may have. Best regards, Joseph QorIQ LS1 Devices
記事全体を表示
i.MX 6 Series LDO Ramp Issue: Linux and Android Patches Now Available Summary of the Issue: We have had customers reporting failure to run MC and SC production parts at 1GHz or higher frequencies. The signature of the fail is that the system will hang once it tries to ramp from the boot frequency of 800MHz to 1GHz or higher. The root cause was tracked to the setting of the LDO_VOLT_CHANGE_EN fuse in production parts. The LDO_VOLT_CHANGE_EN fuse sets the LDO boot voltage to either 1.15V (indicated by a fuse setting of “1”) or 1.1V  (indicated by a fuse setting of “0”). In production parts the fuse is set to “1”, i.e. 1.15V, since this is the optimal setting based on characterization data. On pre-production units the LDO voltage was set to the lower setting of 1.1V (i.e. fuse set to “0”). The reason this is a problem with MC/SC parts is because the fuse is read by the ROM during boot and overwrites the LDO ramp rate bits in the PMU_MISC2 register based on the setting of the fuse. When the LDO_VOLT_CHANG_EN fuse is set to “1” then the LDO ramp up time to spec voltage is set (in PMU_MISC2) to 500uS instead of the 50uS assumed by the CPUFreq driver. This will cause the system to hang when transitioning from the boot frequency to a higher frequency/voltage point since the required voltage to support the higher frequency is not yet present. In real terms, customers who have production i.MX 6Quad/6Dual/6DualLite and 6 Solo parts have seen failures to ramp their products to 1GHz or higher frequencies. This is completely fixed by a software patch that corrects the LDO ramp setting in the PMU_MISC_2 register by setting it back to the fastest ramp time. Note that the LDO_VOLT_CHANGE_EN fuse is not in the reference manual since it is not a customer visible fuse. It is programmed and locked at final test. This is a mandatory fix for all customers. Affected Parts: i.MX 6Quad – all SC and MC parts, consumer and automotive. Industrial MC parts not yet shipping. i.MX 6Dual – all SC and MC parts, consumer and automotive. Industrial MC parts not yet shipping. i.MX 6DualLite – all MC parts consumer parts. Automotive and industrial MC parts not yet shipping. i.MX 6Solo – all MC consumer parts. Automotive and industrial MC parts not yet shipping. Patch Availability and Location: Patches exist for both Linux and Android. They are available on freescale.com. See below for more details. i.MX 6Quad – www.freescale.com/imx6q i.MX 6Dual – www.freescale.com/imx6d i.MX 6DualLite – www.freescale.com/imx6dl  i.MX 6Solo – www.freescale.com/imx6s Select the “Software and Tools” tab and then expand the section “Updates and Patches”.  The relevant patches are: Linux – L3.0.35_1.1.1_LDO_PATCH (i.MX 6Quad/6Dual) Linux – L3.0.35_3.0.3_LDO_PATCH (i.MX 6DualLite/6Solo) Android – IMX6_R13.4103_ANDROID_LDO_PATCH (i.MX 6Quad/6Dual/6DualLite/6Solo) Communication Roll-out: i.MX FAE’s: done (via maillist). Will post copy of this email to i.MX support space by end of day 1 st March. i.MX DFAE’s: 8 th March. Customer notification: 8 th March. i.MX community: 8 th March (to coincide with customer notification). We are also working on an engineering bulletin that describes the change for customers who are not using our provided Linux and Android BSP’s. Target date: TBD. But goal is to make this available on/around mid-March. Best regards, Amanda and Kyle This document was generated from the following discussion: i.MX 6 Series LDO Ramp Issue: Linux and Android Patches Now Available
記事全体を表示
Deploying SDK 1.3.2 In a previous document, I went through the basic steps of building SDK 1.3.2 for the first time. Now I'm ready to deploy the images onto my target, a P3041DS system. Fortunately my P3041 already has a U-boot and linux install on it. So I can just try and update the SDK from within U-boot. I boot up my trusty terminal - I use putty, and connect to my local COM port at 115200 baudrate. My Ubuntu server already has a tftp server installed, and I link my images over from the SDK build/deploy/images directory over to the /tftpboot directory. The QorIQ_SDK_Infocenter.pdf document within the install has information on the flash bank usage for the current SDK. Make sure you use the document and flash map from the current SDK, as things change. I ended up with a system that didn't boot when I used the older location for the fman uCode (from SDK 1.x) on the SDK 1.3.2 system. Here is a table from the document that shows the flash map for a couple of the QorIQ DS system. It's important to note here that this covers the NOR flash - which is what I'm currently using. You may want to experiment with using NAND or SPI based flash instead - but for my purposes I'm going to re-image NOR flash. The NOR on these development systems is banked, meaning that the most significant address line is tied to a DIP switch. So I can have multiple images in Flash at one time, and switch between them (especially helpful when I mistakenly corrupt one). I'm currently in bank0 (which is the "current bank" in the table above). From this, I see that the addresses I should be interested in are located at: Name Address rcw 0xe8000000 Linux.uImage 0xe8020000 uBoot 0xeff800000 fman uCode 0xeff40000 device tree 0xe8800000 linux rootfs 0xe9300000 To verify that this is correct, I can dump out my RCW: And I can also dump out my current U-boot (which should always start with an ASCII header identifying it): at this point I can start updating the images directly from my TFTP server. I have my tftp server already defined via the U-boot environment serverip, so I just tftp the U-boot image to a randomly picked address in RAM of 0x100000. The transfer went ok, so I can burn it into flash now. I will first erase the flash starting at 0xeff80000. Since U-boot is 0x80000 size, I'll erase from 0xeff80000 for size 0x80000. Apparently my sectors were protected. So I need to unprotect first, then erase again. And by reading the flash, I verify that it has been erased (erased NOR always reads back all 0xF's) So, now I can burn the flash: I use a binary copy. And then verify that the image was written correctly. Then we go through the same technique with the other images. I'll burn the fman ucode as well: Then for the actual images and dtb, you have an option of burning them, but I'll tftp them instead. For this I created a U-boot environment variable called ramboot, and point the image names to the paths on my server: At this point I can save the environment to flash via a saveenv command in U-boot. I'll re-boot into the new U-boot to make sure it works (if it doesn't for some reason, I can jump back to a different U-boot I had previously burned in the alternate bank, or else I'll have to use a debugger to re-burn the flash). Then, from within U-boot I can run ramboot, and if all goes well it should fetch the images and boot all the way into the new SDK. Eventually it should boot all the way to a linux prompt. QorIQ P1 Devices QorIQ P2 Devices QorIQ P3 Devices QorIQ P4 Devices QorIQ P5 Devices Re: Deploying SDK 1.3.2 1. RCW is always fetched from address 0x00000000 - this is true. When it comes to the NOR Flash, the actual address is 0xe8000000 thanks to some address bus manipulation & banking done by ngPixis. - in fact when the processor is booting up it see the NOR device only during interim state mapped from 0x0 (due of the OR0/BR0 register setting). Basically the flash contain is mapped multiple times through the SoC memory space - the same content of the flash will be visible in multiple window memory zones - just after reallocation (after the u-boot changes the OR0/BR0) you have absolute addressing. 2. You're right. 3. Up until this stage the address lines coming out eLBC onto the the processor pin is still 0xffff_fffc am I correct? - the addressing is with 0xffff_xxxx addresses - you're right Now with with external logics as well as control from ngPixis, when the address lines reach the NOR Flash, it will be 0xEFFFFFFC ? - in the first stage the u-boot re-map the u-boot zone anywhere it wants (historically the u-boot chose this 0xefxx_xxxx zone) using BR0/OR0, LAW and TLB registers. After all these settings a rfi  instruction is called (the return address - 0xEFxx_xxxx is set up in SRR0 and the MSR in SRR1). You can make also u-boot debug using CodeWarrior to see all this behavior. Regards, Marius Re: Deploying SDK 1.3.2 Marius, 1. You must select the Boot_location from RCW according with your device controller (e.g. eLBC, i2c, IFC, eSPI, eSDHC and so on). In this case should be eLBC 16bits mode -  you can see this setting more like a processorspecific setting. Regarding the RCW fetching, the processor fetches it based on the DIP SW settings from the selected boot device - whatever the device is, always the RCW is fetched from the beginning. --> ok, so RCW is always fetched from address 0x00000000  no matter what device is specified at rcw_src. When it comes to the NOR Flash, the actual address is 0xe8000000 thanks to some address bus manipulation & banking done by ngPixis. 2. According with first step you need to select from DIP SW settings and the desired boot device (NOR, NAND, SPI, SD, I2C and so on) - this is needed because you can have multiple flashes and the processor can't know from what device you want to boot up - you can see this setting more like a board specific setting. --> ok so we  have to specify the boot device at two places: in RCW and onboard switches. The onboard SW is to tell the ngPixis to select the right chip NAND/NOR, etc when processor starts fetching at CS0/OR0/BR0 am I right? 3. Now, based on the first 2 steps, the processor can boot up in a specific combination. In the case of the NOR booting up, the processor has a capability (using OR0/BR0 registers) to map the last part of the flash (this contains u-boot code) over the reset memory area (0xFFFF_FFFC). Let's say that 0xFFFF_FFFC will point to 0xXFFF_FFFC in the NOR flash (where X can be any - e.g. it can be 'E' when you flashed the u-boot starting with 0xEFF8_0000) - this is just to imagine by yourself how it works, but this space 0xEFxx_xxxx doesn't exist during reset/booting time. --> Now this is the part where I would like to clarify my understanding of what actually happens: The processor start fetching from effective address 0xffff_fffc which falls into boot window space. Before this, based on RCW which is setting BOOT_LOC to point to eLBC NOR flash, the processor already configures boot space translation registers to select eLBC ID and the translation registers high/low are still 0 by reset. Now eLBC has to use CS0/OR0/BR0 by default to access NOR Flash; the base value for BR0 is still 0 by reset, and FCM is selected. Up until this stage the address lines coming out eLBC onto the the processor pin is still 0xffff_fffc am I correct? Now with with external logics as well as control from ngPixis, when the address lines reach the NOR Flash, it will be 0xEFFFFFFC ? Re: Deploying SDK 1.3.2 Ok, let's try to reformulate this in less or more common words. 1. You must select the Boot_location from RCW according with your device controller (e.g. eLBC, i2c, IFC, eSPI, eSDHC and so on). In this case should be eLBC 16bits mode -  you can see this setting more like a processor specific setting. 2. According with first step you need to select from DIP SW settings and the desired boot device (NOR, NAND, SPI, SD, I2C and so on) - this is needed because you can have multiple flashes and the processor can't know from what device you want to boot up - you can see this setting more like a board specific setting. 3. Now, based on the first 2 steps, the processor can boot up in a specific combination. In the case of the NOR booting up, the processor has a capability (using OR0/BR0 registers) to map the last part of the flash (this contains u-boot code) over the reset memory area (0xFFFF_FFFC). Let's say that 0xFFFF_FFFC will point to 0xXFFF_FFFC in the NOR flash (where X can be any - e.g. it can be 'E' when you flashed the u-boot starting with 0xEFF8_0000) - this is just to imagine by yourself how it works, but this space 0xEFxx_xxxx doesn't exist during reset/booting time. Regarding the RCW fetching, the processor fetches it based on the DIP SW settings from the selected boot device - whatever the device is, always the RCW is fetched from the beginning. Hope that helps, Marius Re: Deploying SDK 1.3.2 Marius, I have read the answer and it is very useful. Nevertheless, I am writing here again my interpretation hopefully you can clarify with me if my understanding is correct: Say we set the RCW source to NOR flash and also within RCW we set BOOT_LOC to NOR Flash as well. At boot up, RCW is fetched from CS0 address 0x00000000 and then is decoded. Based on the BOOT_LOC value,  the value of Bootspace translation registers LCC_BSTRx (high, low, attribute) are updated accordingly to map the boot window space (from 0xFF800000 to 0xFFFFFFFF) to eLBC NOR Flash (at which  address??). From here I have no idea how is the u-boot loaded in and executed? Re: Deploying SDK 1.3.2 Hi, You can take a look to this response [1]. Regards, Marius [1] https://community.freescale.com/message/331578#331578 Re: Deploying SDK 1.3.2 Hi Paul, i have one question: For this scenario, RCW is loaded from NOR flash and then it will say BOOT_LOC is also from NOR flash. How does the processor know which address from BOOT_LOC to fetch  as this is not indicated in RCW? Re: Deploying SDK 1.3.2 Hi Ryan, I think it is mentioned on Infocenter  here http://www.freescale.com/infocenter/topic/QORIQSDK/3102519.html Freescale documentation is still fragmented anyway. Re: Deploying SDK 1.3.2 Thanks for the good article(s). You mentioned in this article: The NOR on these development systems is banked, meaning that the most significant address line is tied to a DIP switch I was wondering where the documentation is available that describes the various settings of how to changed which bank for the NOR is being used along with what the other DIP switches on the P3041DS do. All I've been able to find is the default values for the DIP switches from the SDK. Could you point me to a link to the documentation that describes the P3041DS hardware in more detail (specifically the DIP switches)? Re: Deploying SDK 1.3.2 I was just reading through the SDK 1.3.2 documentation, section 7.2.5 shows an example of how to bring up two instances of U-boot and Linux (on two separate cores). Here's a link to the document on infocenter: Freescale Technical Information Center Re: Deploying SDK 1.3.2 Good question. What I was showing here was U-boot, loading an SMP image of Linux. U-boot only runs on one core, and Linux will run across all cores. There are other options, and if you wanted to run AMP Linux, or Linux plus other OS'es (VxWorks, OSE etc...) you would need to use a hypervisor. But, what I built and ran here above was U-boot on core0 launching SMP linux. Re: Deploying SDK 1.3.2 Is this loading method will make all the cores running the same image? And for the putty output, how can we know which core is printing the content?
記事全体を表示
How to load the CMSIS-DSP library to the project based on the LPC55S69 Because the LPC55S69 has PowerQuad, in SDK example code, the FFT/FIR/IIR and the other DSP function are implemented by the Powerquad module instead of the Cortex-CM33 core.  This is the Powerquad example to implement the DSP function:' But if customers want to use CMSIS-DSP to implement the DSP function based on Cortex-CM33 instead of Powerquad module, customers can not import SDK example, he has to create a new project, this is the procedures: 1)Create a new project by clicking New->Create a new C/C++ Project 2)select the processor like LPC55S69 3)In the following menu,click CMSIS Driver, and check the CMSIS_DSP_Library and CMSIS_DSP_Library_Source You have to click the Driver which can select your peripherals driver you will use.  3)as the following screenshot, after completion, you can see the CMSIS-DSP source code and library have included in the project General LPC55xx
記事全体を表示
Troubleshooting: Java Error When Config Tools Used From Command Line For S32 Design Studio v3.5 and earlier, there is a known issue when the S32 Configuration Tools are invoked from command line from a location outside of the S32DS installation directory. The following error is reported: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) at com.nxp.swtools.common.utils.runtime.SingletonProvider.getSingletonInstance(SingletonProvider.java:46) at com.nxp.swtools.common.ui.utils.swt.internal.SWTFactory.getSingletonInstance(SWTFactory.java:421) at com.nxp.swtools.common.ui.utils.swt.SWTFactoryProxy.getSingletonInstance(SWTFactoryProxy.java:448) at com.nxp.swtools.dcd.controller.DCDController.getInstance(DCDController.java:84) at com.nxp.swtools.dcd.DCDStartup.earlyStartup(DCDStartup.java:23) at com.nxp.swtools.provider.SWToolsPlatform.initializeAllTools(SWToolsPlatform.java:702) at com.nxp.swtools.framework.Application.start(Application.java:475) at com.nxp.swtools.framework.Application.start(Application.java:445) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:654) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591) at org.eclipse.equinox.launcher.Main.run(Main.java:1462) Caused by: java.lang.NoClassDefFoundError: javafx/beans/property/SimpleBooleanProperty at com.nxp.swtools.bootimage.controller.ABootController. (ABootController.java:37) at com.nxp.swtools.dcd.dcf.common.DCDCommonController. (DCDCommonController.java:90) at com.nxp.swtools.dcd.controller.DCDController. (DCDController.java:43) ... 24 more Caused by: java.lang.ClassNotFoundException: javafx.beans.property.SimpleBooleanProperty cannot be found by com.nxp.swtools.bootimage_1.0.0.202207251223 at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:519) at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:170) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) Resolution: To resolve the issue: Invoke the command from within the installation directory, for example, from 'C:\NXP\S32DS.3.5\eclipse' OR Change "{S32DS Installation Folder}\eclipse\s32ds.ini" by setting the javafx path from relative to absolute. So, if default installation is used, then: Change -Defxclipse.java-modules.dir=jre/javafx-sdk-11.0.2/lib To -Defxclipse.java-modules.dir=C:/NXP/S32DS.3.5/eclipse/jre/javafx-sdk-11.0.2/lib In addition, if it is desired to suppress unimportant warning messages: go to {S32DS installation folder}\eclipse\configuration, open logging.properties file and change com.nxp.swtools.level = SEVERE
記事全体を表示
PXP hands on with IMXRT1070 This hands on is based on the evkmimxrt1170_pxp_lab_cm7.zip which is from https://community.nxp.com/t5/i-MX-RT1170-CAS-Training/PXP-Multiple-Files/ta-p/1178709 this hands on give an example to understand pxp basic concept like letterbox background color, rotation, ps buffer coordination definition, output buffer coordination definition more clear   No Roation This test is based on no rotation, so define as below #define LAB1_BIT_BLIT_NO_ROTATION This demo output is that the rabbit picture shows on the upper left corner of lcd, and the offset width and height is 100   #ifdef LAB1_BIT_BLIT_NO_ROTATION     PXP_ps_bitblit(                    // input                    (void*)bmp_rabbit,                    PIXEL_BYTES,                    BMP_RABBIT_WIDTH,                    BMP_RABBIT_HEIGHT,                      // output                    s_BufferLcd[curLcdBufferIdx],                    DEMO_PANEL_WIDTH,                    DEMO_PANEL_HEIGHT,                    100,  // output offset x                    100,  // output offset y                    kPXP_No_Rotate); #endif       in this lab sample code, the background is set to black, PXP_SetProcessSurfaceBackGroundColor(APP_PXP, 0U); The output is   If we want to set the background to lighter blue, this is what I want to get   then I modify the code to PXP_SetProcessSurfaceBackGroundColor(APP_PXP, 0xFFF0U); But we get the same output like, without any difference     Check the code, find that the original code   void PXP_ps_sub_region_bitblit(…) { …..     outputBufferConfig.width = sub_region_width;     outputBufferConfig.height = sub_region_height;   …… }   This means that the output buffer width and height are the same as the picture width and height, so whatever background color you set, you couldn’t find anything difference, then change the output buffer width and height is the same as lcd width and height     void PXP_ps_sub_region_bitblit(…) { …..       outputBufferConfig.width = output_width;       outputBufferConfig.height= output_height;   …… }   Then the output change to   We can find the color on the top of display is still black and this isn’t what I need, still tracing the code   void PXP_ps_sub_region_bitblit(…) { …..  // Output buffer  outputBufferConfig.buffer0Addr   =  (uint32_t)output_buffer + output_offset_y * output_width * pic_bytes_per_pixel + output_offset_x * pic_bytes_per_pixel …… }   output_buffer is defined as lcd buffer start address, here the output buffer start address isn’t defined as lcd buffer start address(output_buffer), this is offset of lcd buffer start address, so change it like   void PXP_ps_sub_region_bitblit(…) { …..  // Output buffer  outputBufferConfig.buffer0Addr = (uint32_t)output_buffer …… }   Then the output is like     The output picture move to the upper left corner without offset, but this demo defines the offset is 100   void PXP_ps_sub_region_bitblit(…) { …..  // PS buffer PXP_SetProcessSurfacePosition(APP_PXP,0,0,BMP_RABBIT_WIDTH - 1U, BMP_RABBIT_HEIGHT - 1U); ….. }   In the original code, the PS buffer offset is 0, because the ps buffer start address is the same as the output buffer start address, and output buffer start address is offset + lcd output buffer start address, so set the PS output offset is 0, but I change the output buffer start address is the same as lcd buffer start address, so change the code   void PXP_ps_sub_region_bitblit(…) { …..             uint32_t psUlcX         = output_offset_x;             uint32_t psUlcY         = output_offset_y;             uint32_t psLrcX, psLrcY;             psLrcX = psUlcX   +  sub_region_width  - 1U;             psLrcY = psUlcY + sub_region_height- 1U;         // PS buffer         PXP_SetProcessSurfacePosition(APP_PXP,psUlcX,psUlcY,psLrcX,psLrcY); ….. }   The output is \   Now this is what we need     Roation Set Macro to #define LAB2_BIT_90_DEGREE_ROTATION The output is   When rotation is 90 degree and width is wider than the output height, the display part will be cut, so change the code from Before void PXP_ps_sub_region_bitblit(…) { …..       outputBufferConfig.width = output_width;       outputBufferConfig.height= output_height; ….. }   To   void PXP_ps_sub_region_bitblit(…) { …..  if  (rotate == kPXP_Rotate90)  {     outputBufferConfig.width          = output_height;        /*Joan*/     outputBufferConfig.height         = output_width;         /*Joan*/  } else {         outputBufferConfig.width          = output_width;         /*Joan*/         outputBufferConfig.height         = output_height;        /*Joan*/ }….. }   Because this demo only shows no rotation and 90 degree rotation, if customer needs 270 degree, 180 degree, can add by themselves
記事全体を表示
Embedded Image Processing - Camshift demo running on i.MX51 Freescale's ARM Processor General
記事全体を表示
Use LCD_D11 pin for enet reset in iMX28 Dear All,       Our board is designed based on both EVK and HEG (Adeneo Embedded Home Energy Gateway), the ENET_FEC_RESET_B on EVK is replaced by LCD_D11 as it on HEG. We have re-config all pins based on i.mx28 BSP and successfully built by ltib. However, eth0 is not working due to "PHY is not found"! and we are still trying to figure it out.       The changes we apply on the BSP are(in mx28evk_pins.c): in static struct pin_desc mx28evk_fixed_pins[]:       the definition of LCD_D11 change to { .name = "LCD_D11", .id = PINID_LCD_D11, /* PHY reset pin*/ .fun = PIN_GPIO,      .voltage    = PAD_3_3V,      .strength = PAD_8MA,      .output     = 0, },      and replace all "PINID_ENET0_RX_CLK" in mx28evk_pins.c by "PINID_LCD_D11"      To prevent any possible interrupt, we also disable all LCD pins in both mx28_pins.h and mx28evk_pins.c since we don't have LCD.      Any comment/suggestion is highly appreciate! BR, TF
記事全体を表示
AdeneoEmbeddedのCongatec WEC7 OpenGL Cube Demo(コンガテック WEC7 OpenGL キューブデモ) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ねえ君たち!これは、Adeneo EmbeddedのCube OpenGLのWEC7 Congatecボードのデモです。   楽しむ! (マイビデオで視聴)
記事全体を表示
CTとMEXファイルのメカニズムと回避策を調査/MEX文件研究与RTD版本兼容性方案 症状 最近、互換性の問題は、特に異なるバージョンのRTDをサポートしている場合に厄介な問題であることがわかりました。 RTD SDKとプラグを取り外してインストールしますが、RTDを再インストールすると多くの時間がかかり、信頼性が低い場合があるため、完全な方法ではありません。 診断 CTとMEXファイルの仕組みを調査し、古いプロジェクトを新しいバージョンのRTDベースで実行できるようにするための回避策を見つけました。 解決策 すでにいくつかの参照コードとRTDの例でテストされていますが、機能します。ドキュメントが添付されています。
記事全体を表示
Investigated the mechanism of CT vs MEX file and workaround/MEX文件研究与RTD版本兼容性方案 Symptoms Recently found the compatibility issue is a troublesome problem especially when we are supporting different version of RTD. Remove/install the RTD SDK and plug, but it is not a perfect way because reinstall the RTD would cause a lot of time, sometimes it is unreliable. Diagnosis After investigated the mechanism of CT and MEX file, and found a work around to let the old project can be run in new version of RTD basis. Solution Already tested it with several reference code and examples of RTD, it can work. Attached is the document.
記事全体を表示
Notice for Upgrade K3 RTD from 1.0 to 2.0 Symptoms Diagnosis Solution
記事全体を表示
Example MPC5746R DSPI_serialization S32DS.Power.2.1 ******************************************************************************** * Detailed Description: * The example performs basic initialization, setup PLL to maximum allowed freq., * setup clock for peripherals, GPIO pins. * DSPI_M1 is configured as master and for DSI function to serialize eTPU channels' * outputs. eTPU to DSI routing is done by SIU configuration. * User can see SPI waveform on the scope or logic analyzer. * ------------------------------------------------------------------------------ * Test HW: MPC5746R-252DC, MPC57xx Motherboard * MCU: SPC5746RMMT5 CTQG1740 1N83M HKBGCTB * Fsys: PLL 200MHz * Debugger: Lauterbach Trace32 * Target: internal_FLASH, RAM * Terminal: 19200-8-no parity-1 stop bit-no flow control * EVB connection: connect following pins to scope or logic analyzer * PA7: DSPI_M1 SOUT (motherboard pin PP[7]) * PA9: DSPI_M1 SCLK (motherboard pin PP[9]) * PA13: DSPI_M1 CS0 (motherboard pin PP[13]) ********************************************************************************
記事全体を表示
How to Support Recovery Mode for POR Reboot Based on i.MX6 Android R13.4.1 Overview This purpose of this document is to introduce how to support recovery mode for POR reboot event based on MX6 Android R13.4.1. Background If you boot Android R13.4.1 on MX6 SabreSD board, the reboot reason is Watchdog. But if the reboot reason is changed from Watchdog to POR, the recovery mode is failed to enter after factory reset. In R13.4.1, the bit 8 of SRC_GPR10 is used as the persistent bit of recovery mode. This bit is expected to be kept after reboot so that U-boot can use this bit to distinguish what mode should enter. However all SRC registers will be reset on POR sequence according to i.MX6DQRM Section 59.4.1.2.3 IPP_RESET_B (POR). So when the reboot reason is POR, the persistent bit of recovery mode is cleared even if the software set it before reboot. It causes the bootloader won't enter recovery mode after reboot. Software Changes According to i.MX6DQRM, the SNVS_LP General Purpose Register provides a 32 bit read write register, which can be used by any application for retaining 32 bit data during a power-down mode. So to support recovery mode for POR event, the SNVS_LP register can be used to store the persistent bit of recovery mode. The following changes are reqiured to apply (See patches.tar.gz) Apply for Uboot patch bootable/bootloader/uboot-imx/0001-ENGR00235817-mx6-use-SNVS-LPGPR-register-to-store-bo.patch. diff --git a/cpu/arm_cortexa8/mx6/generic.c b/cpu/arm_cortexa8/mx6/generic.c index 257c930..bd47130 100644 --- a/cpu/arm_cortexa8/mx6/generic.c +++ b/cpu/arm_cortexa8/mx6/generic.c @@ -1146,14 +1146,14 @@ int check_and_clean_recovery_flag(void) {   int flag_set = 0;   u32 reg; - reg = readl(SRC_BASE_ADDR + SRC_GPR10); + reg = readl(SNVS_BASE_ADDR + SNVS_LPGPR);   flag_set = !!(reg & ANDROID_RECOVERY_BOOT);   /* clean it in case looping infinite here.... */   if (flag_set) {    reg &= ~ANDROID_RECOVERY_BOOT; -  writel(reg, SRC_BASE_ADDR + SRC_GPR10); +  writel(reg, SNVS_BASE_ADDR + SNVS_LPGPR);   }   return flag_set; @@ -1168,14 +1168,15 @@ int fastboot_check_and_clean_flag(void) {   int flag_set = 0;   u32 reg; - reg = readl(SRC_BASE_ADDR + SRC_GPR10); + + reg = readl(SNVS_BASE_ADDR + SNVS_LPGPR);   flag_set = !!(reg & ANDROID_FASTBOOT_BOOT);   /* clean it in case looping infinite here.... */   if (flag_set) {    reg &= ~ANDROID_FASTBOOT_BOOT; -  writel(reg, SRC_BASE_ADDR + SRC_GPR10); +  writel(reg, SNVS_BASE_ADDR + SNVS_LPGPR);   }   return flag_set; diff --git a/include/asm-arm/arch-mx6/mx6.h b/include/asm-arm/arch-mx6/mx6.h index efb90c2..45381e2 100644 --- a/include/asm-arm/arch-mx6/mx6.h +++ b/include/asm-arm/arch-mx6/mx6.h @@ -732,6 +732,8 @@ #define SRC_GPR9  0x40 #define SRC_GPR10  0x44 +#define SNVS_LPGPR              0x68 + /* Get Board ID */ #define board_is_rev(system_rev, rev) (((system_rev & 0x0F00) == rev) ? 1 : 0) #define chip_is_type(system_rev, rev) \ Apply for kernel patch kernel_imx/0001-ENGR00235817-mx6-use-SNVS-LPGPR-register-to-store-bo.patch diff --git a/arch/arm/mach-mx6/system.c b/arch/arm/mach-mx6/system.c index 6d24f22..61649c5 100644 --- a/arch/arm/mach-mx6/system.c +++ b/arch/arm/mach-mx6/system.c @@ -563,7 +563,7 @@ void mxc_clear_mfgmode(void) #endif #ifdef CONFIG_MXC_REBOOT_ANDROID_CMD -/* This function will set a bit on SRC_GPR10[7-8] bits to enter +/* This function will set a bit on SNVS_LPGPR[7-8] bits to enter   * special boot mode.  These bits will not clear by watchdog reset, so   * it can be checked by bootloader to choose enter different mode.*/ @@ -574,18 +574,18 @@ void do_switch_recovery(void) {   u32 reg; - reg = __raw_readl(SRC_BASE_ADDR + SRC_GPR10); + reg = __raw_readl(MX6Q_SNVS_BASE_ADDR + SNVS_LPGPR);   reg |= ANDROID_RECOVERY_BOOT; - __raw_writel(reg, SRC_BASE_ADDR + SRC_GPR10); + __raw_writel(reg, MX6Q_SNVS_BASE_ADDR + SNVS_LPGPR); } void do_switch_fastboot(void) {   u32 reg; - reg = __raw_readl(SRC_BASE_ADDR + SRC_GPR10); + reg = __raw_readl(MX6Q_SNVS_BASE_ADDR + SNVS_LPGPR);   reg |= ANDROID_FASTBOOT_BOOT; - __raw_writel(reg, SRC_BASE_ADDR + SRC_GPR10); + __raw_writel(reg, MX6Q_SNVS_BASE_ADDR + SNVS_LPGPR); } #endif diff --git a/arch/arm/plat-mxc/include/mach/mx6.h b/arch/arm/plat-mxc/include/mach/mx6.h index 48b04b1..bb22de0 100644 --- a/arch/arm/plat-mxc/include/mach/mx6.h +++ b/arch/arm/plat-mxc/include/mach/mx6.h @@ -302,6 +302,8 @@ #define SRC_GPR9   0x40 #define SRC_GPR10   0x44 +#define SNVS_LPGPR   0x68 + /* GPC offsets */ #define MXC_GPC_CNTR_OFFSET  0x0 Android i.MX6_All
記事全体を表示
IEEE1588V1-V2理解 IEEE 1588协议简单理解        IEEE 1588 是一个精密时间协议 (PTP),用于同步计算机网络中的时钟。 在局域网中,它能将时钟精确度控制在亚微秒范围内,使其适于测量和控制系统。 IEEE 1588 标准为时钟分配定义了一个主从式架构,由一个或多个网段及一个或多个时钟组成。 ​       TSN 网络中时间同步协议使用 IEEE 802.1AS 协议,它基于 IEEE 1588 协议进行精简和修改,也称为 gPTP 协议。 ​       IEEE 1588 协议简称精确时钟协议 PTP(Precision Timing Protocol),它的全称是“网络测量和控制系统的精密时钟同步协议标准”(IEEE 1588 Precision Clock Synchronization Protocol)。其工作的基本原理,是通过主从节点之间进行同步数据帧的发送,记录数据帧的发送时间和接收时间信息进行,并且将该时间信息添加到该数据帧中。从节点获取这些时间信息,并计算从节点本地时钟与主时钟的时间偏差和网络节点之间的传输延时,对本地时钟进行纠正,使之与主节点时钟同步。一个 PTP 网络只能存在一个主时钟。 ​ PTP 协议主要分为两大部分来实现时钟同步功能: ​ 1、建立同步体系: ​       协议使用最佳主时钟算法(Best Master Clock Algorithm,BMCA),通过选取主时钟,建立主从拓扑关系,进而在整个 PTP 网络中建立起同步体系。 ​ 2、同步本地时钟: ​       协议使用本地时钟同步算法(Local Clock Synchronization Algorithm,LCS),通过 PTP 数据报文在网络主从节点之间的交换,计算各从节点本地时钟与主时钟间的时间偏差,调整本地时钟,使之与主时钟同步。 IEEE 1588v1 ​       整个 PTP 网络内的时钟可按照其上 PTP 通信端口的数目来划分成普通时钟(Ordinary Clock,OC)与边界时钟(Boundary Clock,BC):普通时钟只存在一个,而边界时钟则存在多个。一般在确定性不高的网络节点处使用边界时钟,例如交换机或者路由器一般用作边界时钟,如下图所示。在每个端口上,PTP 通信都是独立进行的。 1、边界时钟: ​      边界时钟上只允许存在一个从端口,与上级节点的主端口通信,将其本地时钟与级主端口进行同步。其余端口为主端口,与下游节点的从端口进行通信。边界时钟可以连接不同的网络协议。 ​ 2、同步体系建立流程: ​   (1)初始状态,各个节点端口会在指定的时间内侦听网络中的 Sync 数据帧; 若接收到 Sync 数据帧,节点端口将根据最佳主时钟算法决定端口状态。若没有收到 Sync 数据帧,该节点状态变更为 Pre_Master,并将自己假定为主时钟节点。此时节点端口状态表现为主时钟,但是并不发送 Sync 帧。 ​   (2)端口状态在一定时间内保持 Pre_Master: 若在端口指定时间内接收到 Sync 数据帧,则该端口状态由最佳主时钟算法决定。 若判定端口为主时钟,则将周期性地发送 Sync 帧;若判定为从时钟,则接受 Sync 帧,并计算偏差,纠正本地时钟。 ​ 若在该时间段内端口没有收到 Sync 数据帧,则将状态变更为主时钟,并且开始定时发送 Sync 数据帧。 ​   (3)主时钟和从时钟的状态随着时钟性能与运行状态的变化而变化。下图展示了 BMCA 中状态转移。 3、时间同步建立流程: ​ 如下图PTP同步原理         如图所示,Master为网路中的同步时钟源,可以认为其与UTC或者GPS时无限接近。Slave为网络中需要被同步设备。假设从Master到Slave的路径符合对称路径,那么路径上的延时我们设Delay,然后设备Master和设备Slave之间待同步的时间差值为Offset,即Slave比Master在同一时刻慢Offset。         Slave设备根据算出的Offset即可以进行本地时钟校准。但是1588V1协议依赖于链路的对称性,即Master到Slave与Slave到Master时延一致,这在实际网络状况下很难满足,故需要额外的不对称算法进行链路延时差计算和补偿校准。 IEEE 1588v2 ​IEEE1588V2在IEEE1588V1版本上做了改进和扩展。主要包括: ​ 1.新增点到点路径延时测量的独立消息模式。 端口 A 与端口 B 间的路径延迟时间 Delay 为: ​        在 PTPv1 中,平均路径延迟测量时通过 Sync 帧与 Delay_Req 帧配合使用的,但是在 PTPv2 中却不需要 Sync 帧的参与,仅通过 PDelay_Req 数据帧系列来进行测量。这是一个独立的延迟测量过程,不依赖 Sync 帧和同步体系建立的参与,使得测量精度有所提高,并且可以经过多次测量求得平均值得到更为准确的路径延迟。另一方面,如果网络中的同步体系发生改变,这时不需要重新计算该节点间的路径延迟,直接使用之前已测得的延迟数据,大大增强了协议执行的效率,使得协议更为方便灵活。在PTPv2 中,利用 PDelay_req 数据帧系列已成为主要的测量路径延迟方法。 ​ 2、新增透明时钟模型 ​        在 PTPv1 中,网络中间节点均采用边界时钟模型。与网络中唯一的主时钟,即一个普通时钟连接的边界时钟,其上唯一的从端口接收主节点发送的同步数据帧,与主时钟实现同步,其余的主端口和与之相连的其他边界时钟发送同步数据帧,最后同步到网络边缘的普通时钟,这样便实现了整个网络的时间同步。这种方法虽然可行,但是由于这种方式是逐级同步,所以距离主时钟越远的节点,同步精度越低。 ​        当网络中的一些节点不需要进行时钟同步或者不具备同步功能时,便可采用透明时钟模型。透明时钟不像 BC/OC 模式那样,需要每个节点都与主时钟进行同步,它的端口只对协议数据帧进行转发,并将计算出的数据帧滞留时间添加在校正域中。这种方式将 PTP 数据帧的处理变得更为简单,降低了网络中 PTP 协议的实施难度,同时提高了各从节点的同步精度。 ​ 透明时钟有模型两种:端对端透明时钟,和点对点透明时钟。 ​     (1)端对端(E2E)透明时钟 ​ E2E 透明时钟对网络中普通数据帧不做任何处理,仅进行转达让其正常通过。但是对于 PTP 事件数据帧,则将他们从接收端口到发送端口间的驻留延迟时间累加到数据帧中的修正域,用以弥补 PTP 数据帧在经过其自身所带来的延迟误差。 ​     (2)点对点(P2P)透明时钟 ​ 点对点(P2P)透明时钟只转发特定的 PTP 报文,包括 Sync 帧、Follo_Up 帧和Announce 帧等。并且会采用 Pdelay_Req 数据帧系列计算每个端口与所连接的端口间的路径延迟时间,再与端口间延迟时间合并添加到时间修正域,来补偿数据帧从源端口到点对点透明时钟出端口的时间延迟。 ​ 3、增加单步时钟模型 ​        单步时钟模型解决了 Follow_Up 帧与 Sync 帧匹配问题。PTP 协议基本的同步过程采用双步模式,即主时钟节点发送 Sync 帧,和带有 Sync 帧发送时间的Follow_Up帧。这种方式虽然能提高 Sync 帧时间戳标记的精度,提高同步效果,但是在网络负载较大的情况下,数据帧很有可能发生丢失或者阻塞,造成两种数据帧的匹配出现差错。 ​        在 PTP 数据帧中设置一个标志,来使用单步模式,将 Sync 帧的发送时间与数据帧中的时间标签的差值作为传输延迟,并将其累加到修正域中。这样主时钟便通过单独的 Sync 帧而不需要 Follow_Up 进行时间的同步校准工作。 ​        单步模式可以减少网络流量,提高网络负载较大时同步的可靠性。单步模式需要额外的辅助硬件,来帮助计算时间修正值并将其累加到校正域中,这对网络的实时性有比较高的要求。 BMCA ​        BMCA,即最佳主时钟算法,它选择网络中性能最佳的时钟作为主时钟,并以 此建立网络拓扑,生成同步体系,进而实现时钟同步功能。 ​        最佳主时钟的选取是通过Announce帧在网络中各节点的传输,比较各个节点上的时钟属性(比如是否将时钟指定为主或者从时钟),用于标识精度的时钟等级,以及用于标识时钟源类型的时钟类型(比如铷钟、铯钟等),还有表示时钟偏移、方差等的时钟特性、时钟地址以及时钟端口号等特征来选择最佳主时钟,当其他时钟特征都一样是,协议会将端口号最小的节点时钟作为主时钟。IEEE 1588协议会以主时钟节点作为根节点形成树形拓扑结构,并且为避免生成回路,那些竞争失败的节点端口,协议将他们定义为被动或者禁用状态。
記事全体を表示
Recommended Academic Textbooks Academic Textbooks 32-bit Microprocessor and Microcontrollers Kinetis (ARM Cortex-M) ColdFire™ (MC51xx, MC52xx, MC53xx, MC54xx) Power™ Architectures (MC5xx, MC55xx) Digital Signal Processing General 32-bit topics 8- and 16-bit Microcontrollers HCS12 HCS08 HC11/HC12 (Legacy Devices) Academic Textbooks Collection of textbooks related to or using Freescale processors and/or covering general embedded engineering concepts. Additional resources including lab manuals, sample projects and more are available in the Faculty Portal.  These resources are only available to to verified faculty partners. 32-bit Microprocessor and Microcontrollers Kinetis (ARM Cortex-M) Title: uC/OS-III The Real Time Kernel for the Kinetis Cortex M4 Author: Jean Labrosse ISBN:9780982337523 Publisher: Micrium Press Released: 2011 ColdFire™ (MC51xx, MC52xx, MC53xx, MC54xx) Title: ColdFire Microprocessors and Microcontrollers Author: Munir Bannoura, Rudan Bettelheim, Richard Soja ISBN: 0976297302 Publisher URL: www.amtpublishing.com Released: 2006 Power™ Architectures (MC5xx, MC55xx) Title: MPC5554/MPC5553 Revealed Author: Munir Bannoura, Richard Soja ISBN: 0976297353 Publisher URL: www.amtpublishing.com Released: 2005 Title: eTPU Programming Made Easy  **Now Available in Japanese Author: Munir Bannoura, Margaret Frances ISBN: 0976297310 Publisher URL: www.amtpublishing.com Released: 2004 Title: TPU Microcoding for Beginners Author: Amy Dyson, Munir Bannoura ISBN: Publisher URL: www.amtpublishing.com Released: 1999 Digital Signal Processing Title: DSP for Embedded and Real-Time Systems Author: Robert Oshana ISBN: 9780123865359 Publiser: Elsevier Released: 2012 Title: DSP Filter Cookbook (Electronics Cookbook Series) Author: John Lane, Jayant Datta, Brent Karley, Jay Norwood ISBN: 0790612046 Publisher URL:  No Data Released: 2004 Title: Digital Signal Processing Fundamentals Author: Ashfaq Khan ISBN: 1584502819 Publisher URL: www.oup.com/us/he Released: 2000 Title: Digital Signal Processing Applications with Motorola's DSP56002 Processor Author: Mohammed El-Sharkawy ISBN: 0135694760 Publisher URL:  No Data Available www.oup.com/us/he Released: 1996 Title: Foundations of Digital Signal Processing: Theory, Algorithms and Hardware Design Author: Patrick Gaydecki ISBN-10: 0852964315 ISBN-13: 978-0852964316 Publisher: IEE; General 32-bit topics Title: Modern Micoprocessors 3rd Edition Author: V. Korneev / A.Kiselev ISBN: 1584503688 Publisher URL: www.charlesriver.com Released: 2004 Title: Micrcontrollers and Microcomputers: Principles of Software and Hardware Engineering Author: Fredrick M. Cady ISBN: 0195110080 Publisher URL: www.oup.com/us/he Released: 1997 Title: Programming Microcontrollers in C Author: Ted Van Sickle ISBN: 1878707140 Publisher URL: Released: 1994 Title: Real-Time Programming: A Guide to 32-bit Embedded Development Author: Rick Grehan, Ingo Cyliax, Robert Moote ISBN: 0201485400 Publisher URL:  www.aw.com Released: 1998 Title: Embedded Systems Design: A Unified Hardware/Software Introduction Author: Frank Vahid, Tony D. Givargis ISBN: 0471386782 Publisher URL:  No Data Available Released: 2001 Title: Microcontrollers in Practice Author: Marian Mitescu ISBN: 3540253017 Publisher URL:  No Data Available Released: 2005 Title: Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers Author: Tammy Noergaard ISBN: 0750677929 Publisher URL:  books.elsevier.com/newnes/ Released: 2005 Title: MEMS: Applications Author: Mohamed Gad-el-Hak ISBN: 0849391393 Publisher URL:  crcpress.com Released: 2005 Title: High-Performance Embedded Computing: Architectures, Applications, and Methodologies Author: Wayne Wolf ISBN: 012369485X Publisher URL:  No Data Available Released: 2006 Title: Hardware and Computer Organization Author: Arnold S. Berger ISBN: 0750678860 Publisher URL:  www.elsevier.com Released: 2005 8- and 16-bit Microcontrollers HCS12 Title:  Microcontroller Programming For Engineers Author: Harlan Talley ISBN-13: 978-0-557-09570-4 Publisher URL: http://lulu.com Released: 2009 Title:  Learning by Example Using C – Programming the DRAGON12-Plus Author: Richard E. Haskell and Darrin M. Hanna ISBN: Publisher URL: http://www.lbebooks.com Released: Title:  Learning by Example Using C – Programming the mini DRAGON12 Author: Richard E. Haskell and Darrin M. Hanna ISBN: Publisher URL: http://www.lbebooks.com Released: Title:  HCS12 Microcontrollers and Embedded Systems Author: Muhammad Ali Mazidi, Danny Causey, Janice Mazidi ISBN: 978013672294 Publisher URL: http://www.pearsonhighered.com Released: 2008 Title: Assembly and C Programming for the Freescale HCS12 Microcontroller Second Edition Author: Fredrick M. Cady ISBN: 9780195308266 Publisher URL: www.oup.com/us/he Released: 2007 Title: The HCS12/9S12, An Introduction to Hardware and Software Interfacing Author: Han-Way Huang ISBN: 1401898122 Publisher URL: http://www.delmarlearning.com/electronics/ Released: 2006 Title: Embedded Microcomputer Systems: Real Time Interfacing 2nd Edition Author: Jonathan W. Valvano ISBN: 0534551629 Publisher URL: http://engineering.thomsonlearning.com/ Released: 2006 Title: MicroC/OS-II: The Real-Time Kernel Author: Jean J. Labrosse ISBN: 1578201039 Publisher URL: www.cmpbooks.com Released: 2002 HCS08 Title: Microcomputer Architecture - Low Level Programming Methods and Applications of the M68HC908GP32 Author: Dimosthenis E. Bolanakis, Euripidis Glavas, Georgios A. Evangelakis, Konstantinos T. Kotsis, Theodore Laopoulos ISBN: 978-960-93-4536-1 (English version of the book) ISBN: 978-960-357-101-8 (Greek version of the book: delivered with an educational board) Title: HCS08 Unleashed: Designer's Guide To the HCS08 Microcontrollers Author: Fabio Pereira ISBN-10: 1419685929 Publisher URL: http://www.booksurge.com/ Released: March 24, 2008 Title: Using Microprocessors and Microcomputers: The Motorola Family 4th Edition Author: William Wray, Joseph Greenfield, Ross Bannatyne ISBN: 0138404062 Publisher URL:  www.prenhall.com Released: 1998 Title: The Official Robosapien Hacker's Guide Author: Dave Prochnow ISBN: 0071463097 Publisher URL:  /www.mhprofessional.com Released: 2005 Title: Robot Building for Beginners Author: Dave Cook ISBN: 1893115445 Publisher URL:  http://www.robotroom.com Released: 2002 Title: Intermediate Robot Building Author: Dave Cook ISBN: 1590593731 Publisher URL:  http://www.robotroom.com Released: 2004 HC11/HC12 (Legacy Devices) Title: Software and Hardware Engineering Motorola M68HC12 Author: Fredrick M. Cady, James M. Sibigtroth ISBN: 0195110463 Publisher URL: www.oup.com/us/he Released: 2000 Title: Software and Hardware Engineering Motorola M68HC11 Author: Fredrick M. Cady ISBN: 0195110463 Publisher URL: www.oup.com/us/he Released: 1997 Title: MC68HC12 An Introduction: Software and Hardware Interfacing Author: Han-Way Huang ISBN: 0766834484 Publisher URL: http://www.delmarlearning.com/electronics/ Released: 2002 Title: MC68HC11 An Introduction: Software and Hardware Interfacing 2nd Edition Author: Han-Way Huang ISBN: 0766816001 Publisher URL: http://www.delmarlearning.com/electronics/ Released: 2002 Title: Programming the Motorola M68HC12 Family Author: Gordon Doughman ISBN: 0929392671 Publisher URL:  No Data Available Released: 2000 Title: Embedded Systems: Design and Applications with the 68HC12 and HCS12 Author: Steven F. Barrett, Daniel J. Pack ISBN: 0131401416 Publisher URL:  www.prenhall.com Released: 2004 Title: Introduction to Microcontrollers Architecture, Programming, and Interfacing for the Freescale 68HC12 Author: G. Jack Lipovski ISBN: 0124518389 Publisher URL:  books.elsevier.com Released: 2004 Title: Single and Multiple Chip Microcomputer Interfacing Author: G. Jack Lipovski ISBN: 0138105731 Publisher URL:  No Data Available Released:  No Data Available Title: Microcomputer Engineering, Third Edition Author: Gene H. Miller ISBN: 0131428047 Publisher URL: www.prenhall.com Released:  2003 Re: Recommended Academic Textbooks Have a book that we should include?  Post here and spread the word!
記事全体を表示
i.MX6 晶体驱动电平 (24 MHz) EB830 i.MX6 系列 - 晶体驱动级别指导;包括计算器。 更新于 2024-01-25:更新后的 Adobe Acrobat 安全设置似乎不再允许导出具有某些扩展名的嵌入文件。将 Excel 文件附加到此帖子。 i.MX6 系列 - 晶体驱动级别指导;包括计算器。 i.MX6_全部 回复:i.MX6 晶体驱动电平 (24 MHz) EB830 我已编辑该帖子并在上面的 zip 文件中添加了嵌入的 Excel 文档。 回复:i.MX6 晶体驱动电平 (24 MHz) EB830 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我无法使用或下载 pdf 文件中的附件?我该如何使用它? 回复:i.MX6 晶体驱动电平 (24 MHz) EB830 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> PDF 中的附件也遇到了同样的问题。我相信这是因为 Adobe Reader 安全更新现在阻止打开启用了宏的 Excel 文档。 回复:i.MX6 晶体驱动电平 (24 MHz) EB830 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 文档 EB830 中有一个我似乎无法提取的附件。这个计算器可用吗? 回复:i.MX6 晶体驱动电平 (24 MHz) EB830 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 根据 EB830:“根据晶体供应商提供的几个参数来选择晶体,以便不违反晶体的最大驱动水平。”因此,100 uW 晶体不能在 100 uW 以上使用,因为 100 uW 是允许的最大耗散。例如,这类似于 1/8 瓦电阻器——此电阻器不应在超过 1/8 瓦最大额定值的条件下使用。 您必须选择电容器来匹配数据表上的晶体负载电容,同时确保不超过晶体的最大额定功率(uW)。公告中引用的应用说明展示了如何计算负载电容;他们将其称为 Ceq。 回复:i.MX6 晶体驱动电平 (24 MHz) EB830 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 现在它正在工作,大卫。 回复:i.MX6 晶体驱动电平 (24 MHz) EB830 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗯。我只是将它移至社区并为文件添加了一个类别。我没有改变任何其他东西。它说它正在排队进行病毒扫描。我会询问我们的 ECM。 此致, 授予
記事全体を表示
全新 PMIC 支持 i.MX6 处理器系列 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> LTC ® 3676 是适用于 i.MX6、ARM Cortex 处理器系统的完整电源管理解决方案。LTC3676 具有八个独立的电阻可编程电压轨,具有动态控制和排序功能,采用紧凑的 QFN 和 LQFP 封装。这些导轨为处理器核心、SDRAM、系统内存、PC 卡、实时时钟 (RTC) 以及各种其他功能提供电源。 四路 I2C 可调高效降压 DC/DC 转换器:2.5A、2.5A、1.5A、1.5A 三路 300mA LDO 稳压器(2 个可调) 带有 VTT 和 VTTR 参考的 DDR 电源解决方案 带系统复位功能的按钮开/关控制 独立启用引脚配置和 I2C 排序 可编程自主断电控制 电源良好和复位功能 动态电压调节 可选 2.25MHz 或 1.12MHz 开关频率 始终有效的 25mA LDO 稳压器 10μA待机电流 40 引脚 6mm × 6mm × 0.75mm QFN 封装和 48 引脚 7mm × 7mm LQFP 封装 如需了解更多详细信息,请联系 Linear Technology(请注意,这是一款预发布产品;但 Linear Technology 可提供数据表和 ES 样品) http://www.linear.com/product/LTC3676 或 Gerard Velcelean,邮箱: [email protected] 或 Steve Knoth,邮箱: [email protected] i.MX6_全部
記事全体を表示
Android Memory Usage Tool: Procrank Procrank can be used to check if a process has memory leakage. Procrank will list four types of memory usage. For details refer to: http://elinux.org/Android_Memory_Usage Vss = virtual set size Rss = resident set size Pss = proportional set size Uss = unique set size Uss can be used to check if a process has memory leakage. If the Uss increases when some operations start and stop, this means there could be memory leakage. Procrank can get from: /out/target/product/ /system/xbin/procrank and also needs to push to the library you target: /out/target/product/< product_name >/system/lib/libpagemap.so Android
記事全体を表示