精华内容
下载资源
问答
  • 近日,国外一名 16 岁的小开发者在 YouTube 上发布了一则视频,展示了自己是如何将 Linux 移植到一部无法使用的 iPhone 7。 2020 年 3 月,Corellium 提出了 Project Sandcastle,通过使用 checkra1n 越狱程序在 ...

    本文转载自 InfoQ,作者 李俊辰

    如果你的旧 iPhone 已经无法支持你日常使用了,你会怎么处理这部 iPhone 呢?卖掉还是留起来收藏呢?近日,国外一名 16 岁的小开发者在 YouTube 上发布了一则视频,展示了自己是如何将 Linux 移植到一部无法使用的 iPhone 7。

    2020 年 3 月,Corellium 提出了 Project Sandcastle,通过使用 checkra1n 越狱程序在 iPhone 上成功运行 Android,激发了开发者对那些旧型号的 iPhone 进行“改造”的热情。此后,很多开发者尝试对自己的旧设备进行“改造”,试图将 Linux 发行版移植到那些旧型号的 iPhone 上,为这些本该“吃灰”的设备延长寿命。

    近日,国外一名 16 岁的小开发者 Daniel Rodriguez 成功地将 Linux Ubuntu 20.04 移植到了 iPhone 上。

    图片

    图片来源于 xda-developers

    据 Daniel 介绍,他使用的 iPhone 7 是他外婆的,这部设备已经完全无法访问 NVMe NAND,这意味着这部设备已经无法再运行 iOS 系统,就是大家常说的“变砖”,不过这部 iPhone 7 的硬件设备没有任何故障和损坏,于是 Daniel 拿来了这部手机,准备将它改造一番。

    Daniel 参考并使用了 checkra1n,linux-sandcastle,projectsandcastle 等开源项目,同时自己编写了网桥设置 script/udev 规则来实现这一复杂的工作。最终成功地在这部 iPhone7 上运行了 Ubuntu 20.04。

    Daniel 还在 Reddit 上分享了一份十分详细的指南,说明自己是如何成功制造出这部「iPhone 7 Ubuntu Edition」,有经验的开发者甚至可以直接按照该教程进行操作。而对于没有经验的用户,过程就会相对繁琐了不少,因为需要开发者事先手动编译内核并使用 checkra1n 访问 pongoOS 引导前执行环境。有兴趣的小伙伴可以移步 Reddit:

    https://www.reddit.com/r/linux/comments/kux9xx/success_iphone_7_with_dead_nand_netbooting/

    Daniel 表示,他自己在家里搭建了一组服务器,用于运行自己的俱乐部网站和游戏服务器。现在,他把改造后的 iPhone 7 当作一台服务器用来分担他的服务器的负载。而 iPhone 7 的 A10 芯片也发挥出了超乎 Daniel 想象的性能。

    尝试将 Ubuntu 移植到 iPhone 7 上并不奇怪,因为该 Ubuntu 系统对于 Linux 内核并不陌生。此前的 postmarketOS 项目就是将 Linux 引入 iPhone 7 和 iPhone 7 Plus。虽然在 iPhone 上安装像 Ubuntu 这样的 GNU / Linux 发行版不会给用户带来与 iOS 相同的使用体验,但将旧设备改造并成功运行 Linux 无疑是一件很酷的事情。

    他将改造成功的经历和指南发布到 Reddit 上后,迅速引发了广大开发者和用户的关注,很多用户称他为「天才」,不过 Daniel 却很谦虚,他表示,“这些都应该归功于 Corellium、checkra1n 项目的开发人员、Linus Torvalds 以及 Linux 内核的所有贡献者、Ubuntu 和 Debian 维护者等等。他们是为这个项目制作所有作品的真正英雄,而我只是恰好在 iPhone 上组装了这些前辈们留下的拼图。”

    展开全文
  • Android移植基础

    万人学习 2015-05-21 23:53:34
    Android视频课程,该课程可以让学员了解Android系统架构、学习如何下载Android源码、编译及开发Android、学习如何追踪Android源码、了解Linux内核启动流程、了解Android启动流程、学习如何移植外部函式库至Android...
  • FreeRTOS STM32移植笔记

    万次阅读 多人点赞 2013-10-26 22:11:08
    【1】其实说不上移植笔记,FreeRTOS已经移植至众多平台(MCU),包括MSP430,STM32等,这份笔记完全建立在官方代码的基础之上,简单的说就是修改一些设置从而完成一个呼吸灯实验。 【2】虽然有官方移植代码,但是...

    1.前言

        【1】其实说不上移植笔记,FreeRTOS已经移植至众多平台(MCU),包括MSP430,STM32等,这份笔记完全建立在官方代码的基础之上,简单的说就是修改一些设置从而完成一个呼吸灯实验。

        【2】虽然有官方移植代码,但是官方移植版本为STM32的V2.X库,与现在流行的V3.5有比较大的区别。本笔记也是总结网上几篇学习笔记,主要说明如果使用V3.5库,需要做哪些修改。

        【3】编译软件为IAR EWARM 6.5。

     

        【相关博文】

        【FreeRTOS学习笔记——任务间使用队列同步数据】——如何使用FreeRTOS队列。

        【如何在FreeRTOS下实现低功耗——MSP430F5438平台】——如何通过空任务实现系统低功耗。

     

    2.FreeRTOS需要哪些文件

        FreeRTOS的文件结构非常简单,移植或者版本升级替换也非常方便。

        1)与FreeRTOS内核有关的文件数量仅为3个,分别是list.c queue.c tasks.c

        该文件位于FreeRTOS\Source

        2)与内存分配有关的文件共有4个,分别是heap_1.c,heap_2.c,heap_3.c,heap_4.c。4个文件只需选择其中的1个,STM32选择heap_2.c。

        该文件位于FreeRTOS\Source\portable\MemMang

        3)与移植相关的代码包括port.c,portasm.s,portmacro.h。这些代码不但和编译器有关还和平台(MCU)有关。FreeRTOS先以编译器为大类,然后再以平台(MCU)为小类。在这里选择IAR编译器,平台为ARM_CM3。

        该文件位于FreeRTOS\Source\portable\IAR\ARM_CM3

        4)除了上述内容之外,还包括FreeRTOS内核相关的头文件。

        该文件FreeRTOS\Source\include

    3.必要的工程设置

        开始之前需要引入V3.5库相关头文件,启动代码和CMSIS库。

        在IAR中设置相关头文件的路径(应根据实际情况修改)

        $PROJ_DIR$\CMSIS

        $PROJ_DIR$\StdPeriph_Driver\inc

        $PROJ_DIR$\User

        $PROJ_DIR$\FreeRTOS\Source\include

        $PROJ_DIR$\FreeRTOS\Source\portable\IAR\ARM_CM3

        当然头文件的路径并不是绝对的,只要明确头文件在哪,设置正确路径即可。

        除了设置C代码的相关头文件之外,还需要设置汇编代码的头文件路径,由于很少设置汇编代码头文件路径,往往初次移植FreeRTOS会在此处遇到一些“困难”。(当然也包括我)

        由于portasm.s需要FreeRTOSConfig.h中的相关宏定义,所以要根据FreeRTOSConfig.h的位置来设置汇编代码的头文件路径,本例中FreeRTOSConfig.h位于User文件夹,所以设置如下图所示。

    图1 设置ASM头文件搜索路径

    4.修改启动代码

        由于SVC_Handle,PendSV_Handle和SysTick_Handle在portasm.s中被重定义,所以需要在启动代码中修改这些中断向量的名称,并声明这些中断向量为外部函数。这也是初次使用FreeRTOS容易范的错误。具体修改如下所示。

    图2 启动代码修改

        请注意,在汇编代码中";"代表注释。EXTERN和C语言的extern含义相同——意为外部函数(变量)。

        EXTERN  __iar_program_start

        EXTERN  SystemInit   

        EXTERN  vPortSVCHandler           ;@

        EXTERN  xPortPendSVHandler        ;@

        EXTERN  xPortSysTickHandler       ;@

        PUBLIC  __vector_table

        声明vPortSVCHandler,xPortPendSVHandler和xPortSysTickHandler为外部函数。

        vPortSVCHandler对应SVC_Handler 

        xPortPendSVHandler对应PendSV_Handle

        xPortSysTickHandle对应SysTick_Handle

        

    5.代码实现

        经过了以上修改之后,就可以轻松实现基于FreeRTOS的呼吸灯了。代码如下:

    /* Standard includes. */
    #include <stdio.h>
    
    /* Scheduler includes. */
    #include "FreeRTOS.h"
    #include "task.h"
    #include "queue.h"
    
    /* Library includes. */
    #include "stm32f10x.h"
    
    #define LED0_ON()   GPIO_SetBits(GPIOB,GPIO_Pin_0);
    #define LED0_OFF()  GPIO_ResetBits(GPIOB,GPIO_Pin_0);
    
    static void prvSetupHardware( void );
    static void vLEDTask( void *pvParameters );
    void vLedInit(void);
    
    int main( void )
    {
      /* 初始化硬件平台 */
      prvSetupHardware();
      /* 建立任务 */
      xTaskCreate( vLEDTask, ( signed portCHAR * ) "LED", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY+3, NULL );
      /* 启动OS */
      vTaskStartScheduler();
      
      return 0;
    }
    /*-----------------------------------------------------------*/
    void vLEDTask( void *pvParameters )
    {
      for( ;; )
      {
        LED0_ON();
        vTaskDelay( 100/portTICK_RATE_MS );
        LED0_OFF();
        vTaskDelay( 100/portTICK_RATE_MS );
      }
    }
    
    /*-----------------------------------------------------------*/
    static void prvSetupHardware( void )
    {
      vLedInit();
    }
    /*-----------------------------------------------------------*/
    void vLedInit( void )
    {
      GPIO_InitTypeDef GPIO_InitStructure;
      RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE );
      /*LED0 @ GPIOB.0*/
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
      GPIO_Init( GPIOB, &GPIO_InitStructure );    
    }
    

     

    6.总结

        本人觉得FreeRTOS使用比uCOS简单,虽然FreeRTOS资料远没有uCOS多,但是毕竟uCOS是一个收费产品,而FreeRTOS是一个开源的产品。后面还将会整理一些FreeRTOS的范例代码,希望和大家一起推动FreeRTOS的使用。

    代码链接

    【版本信息】IAR 6.5

     

    7.参考资料

    在STM32使用3.5函式庫移植FreeRTOS

    MDK下基于STM32固件库V3.5.0的FreeRTOS移植笔记

    展开全文
  • 本课程为uboot学习的第12部分,从uboot官网下载的uboot开始进行移植,基本涉及到uboot移植的方方面面。本课程的目标不只是让大家理解uboot的代码结构和移植方法,更重要的在于实战演练和对大家移植时功力的提升和...
  • 本课程为linux kernel移植的第4部分,从三星smdkv210开发板的官方移植内核出发针对X210开发板进行移植。因为内核的移植大多和驱动有关,因此这里的移植部分重点在于流程的引入和调试技巧的介绍,更多的内容要到驱动...
  • 本课程为uboot学习的第11部分,以三星官方版本uboot为原材料来进行移植,适配我们的X210开发板。本课程的目标是对前面uboot分析的课程进行综合从而完成uboot的移植
  • glib 移植依赖 libmount 移植

    千次阅读 2018-06-11 17:58:29
    glib库的编译需要多种依赖,其中libmount依赖比较难找,在编译glib需要依赖,所以要先移植libmount
    glib库的编译需要多种依赖,其中libmount依赖比较难找,在编译glib需要依赖,所以要先移植libmount
    展开全文
  • MicroPython移植

    千次阅读 2019-08-13 11:56:34
    MicroPython移植 1.目标板 stm32f407zgt6 2.下载移植准备 micropython源码 arm交叉编译工具 sudo apt-get install git sudo apt-get install gcc-arm-none-eabi mkdir MicroPython cd MicroPython git clone ...

    MicroPython移植

    1.目标板

    stm32f407zgt6
    在这里插入图片描述

    2.下载移植准备

    micropython源码
    arm交叉编译工具

    sudo apt-get install git
    sudo apt-get install gcc-arm-none-eabi
    mkdir MicroPython
    cd MicroPython
    git clone https://github.com/micropython/micropython
    cd micropython/mpy-cross
    make
    cd ../ports/stm32/boards
    cp -r STM32F4DISC/ myboard
    gedit myboard/mpconfigboard.h  					#修改#define MICROPY_HW_BOARD_NAME       "myboard"
    cd ..
    gedit Makefile	#修改BOARD ?= myboard
    make											#自动下载需要的库
    编译成功:
    LINK build-myboard/firmware.elf
    text	   data	    bss	    dec	    hex	filename
    325776	     32	  27556	 353364	  56454	build-myboard/firmware.elf
    GEN build-myboard/firmware.dfu
    GEN build-myboard/firmware.hex
    

    使用jflash烧写build-myboard/firmware.hex到目标板

    3.目标板的基本硬件配置

    gedit boards/myboard/pins.csv
    # 内容改成如下
    PC10,PC10
    PA15,PA15
    PA14,PA14
    PA13,PA13
    PA12,PA12
    PA11,PA11
    PA10,PA10
    PA9,PA9
    PA8,PA8
    PC9,PC9
    PC8,PC8
    PC7,PC7
    PC6,PC6
    PG8,PG8
    PG7,PG7
    PG6,PG6
    PG5,PG5
    PG4,PG4
    PF6,PF6
    PF8,PF8
    PF7,PF7
    PF10,PF10
    PF9,PF9
    PH1,PH1
    PH0,PH0
    PC1,PC1
    PC0,PC0
    PC3,PC3
    PC2,PC2
    PA1,PA1
    PA0,PA0
    PA3,PA3
    PA2,PA2
    PA5,PA5
    PA4,PA4
    PA7,PA7
    PA6,PA6
    PC5,PC5
    PC4,PC4
    PB1,PB1
    PB0,PB0
    PB2,PB2
    PF12,PF12
    PF11,PF11
    PF14,PF14
    PF13,PF13
    PG0,PG0
    PF15,PF15
    PE7,PE7
    PG1,PG1
    PE9,PE9
    PE8,PE8
    PE11,PE11
    PE10,PE10
    PE13,PE13
    PE12,PE12
    PE15,PE15
    PE14,PE14
    PB11,PB11
    PB10,PB10
    PB13,PB13
    PB12,PB12
    PB15,PB15
    PB14,PB14
    PD9,PD9
    PD8,PD8
    PD11,PD11
    PD10,PD10
    PD13,PD13
    PD12,PD12
    PD15,PD15
    PD14,PD14
    PG3,PG3
    PG2,PG2
    LED_GREEN,PF9 
    LED_RED,PF10
    SW,PA0
    USB_DM,PA11
    USB_DP,PA12
    
    gedit boards/myboard/mpconfigboardconfig.h
    # 内容改成如下:
    
    #define MICROPY_HW_BOARD_NAME       "myboard"
    #define MICROPY_HW_MCU_NAME         "STM32F407"
    
    //#define MICROPY_PY_STM              (1)
    //#define MICROPY_PY_PYB_LEGACY       (1)
    #define MICROPY_HW_ENABLE_INTERNAL_FLASH_STORAGE (1)
    #define MICROPY_HW_ENABLE_RTC       (1)
    #define MICROPY_HW_ENABLE_RNG       (1)
    #define MICROPY_HW_ENABLE_ADC       (1)
    #define MICROPY_HW_ENABLE_DAC       (1)
    #define MICROPY_HW_ENABLE_DCMI      (0)
    #define MICROPY_HW_ENABLE_USB       (1)
    #define MICROPY_HW_ENABLE_SERVO     (0)
    #define MICROPY_HW_HAS_SWITCH       (1)
    #define MICROPY_HW_HAS_FLASH        (1)
    #define MICROPY_HW_HAS_LCD          (0)
    #define MICROPY_HW_FLASH_FS_LABEL   "pyb_f4_internal_flash"
    
    #define MICROPY_HW_ENABLE_SDCARD    (1)
    #define MICROPY_HW_SDMMC_BUS_WIDTH  (4)
    
    //#define MICROPY_HW_HAS_LCD          (1)
    
    // HSE is 8MHz
    #define MICROPY_HW_CLK_PLLM (8)
    #define MICROPY_HW_CLK_PLLN (336)
    #define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV2)
    #define MICROPY_HW_CLK_PLLQ (7)
    
    // UART config
    #if 1
    // A9 is used for USB VBUS detect, and A10 is used for USB_FS_ID.
    // UART1 is also on PB6/7 but PB6 is tied to the Audio SCL line.
    // Without board modifications, this makes UART1 unusable on this board.
    #define MICROPY_HW_UART1_NAME 	"UART1"
    #define MICROPY_HW_UART1_TX     (pin_A9)
    #define MICROPY_HW_UART1_RX     (pin_A10)
    #endif
    #define MICROPY_HW_UART2_NAME 	"UART2"
    #define MICROPY_HW_UART2_TX     (pin_A2)
    #define MICROPY_HW_UART2_RX     (pin_A3)
    #define MICROPY_HW_UART2_RTS    (pin_A1)
    #define MICROPY_HW_UART2_CTS    (pin_A0)
    #define MICROPY_HW_UART3_NAME 	"UART3"
    #define MICROPY_HW_UART3_TX     (pin_D8)
    #define MICROPY_HW_UART3_RX     (pin_D9)
    #define MICROPY_HW_UART3_RTS    (pin_D12)
    #define MICROPY_HW_UART3_CTS    (pin_D11)
    
    // NOTE: A0 also connects to the user switch. To use UART4 you should 
    //       set MICROPY_HW_HAS_SWITCH to 0, and also remove SB20 (on the back
    //       of the board near the USER switch).
    #define MICROPY_HW_UART4_NAME 	"UART4"
    #define MICROPY_HW_UART4_TX     (pin_C10)
    #define MICROPY_HW_UART4_RX     (pin_A1)
    
    
    #if 0
    #define MICROPY_HW_UART5_NAME 	"UART5"
    #define MICROPY_HW_UART5_TX     (pin_C12)
    #define MICROPY_HW_UART5_RX     (pin_D2)
    #endif
    // NOTE: PC7 is connected to MCLK on the Audio chip. This is an input signal
    //       so I think as long as you're not using the audio chip then it should
    //       be fine to use as a UART pin.
    #define MICROPY_HW_UART6_NAME 	"UART6"
    #define MICROPY_HW_UART6_TX     (pin_G14)
    #define MICROPY_HW_UART6_RX     (pin_G9)
    
    // I2C busses
    #define MICROPY_HW_I2C1_NAME "I2C1"
    #define MICROPY_HW_I2C1_SCL (pin_B6)
    #define MICROPY_HW_I2C1_SDA (pin_B7)
    #if 1
    #define MICROPY_HW_I2C2_NAME "I2C2"
    #define MICROPY_HW_I2C2_SCL (pin_B10)
    #define MICROPY_HW_I2C2_SDA (pin_B11)
    #endif
    // SPI busses
    #define MICROPY_HW_SPI1_NAME "SPI1"
    #define MICROPY_HW_SPI1_NSS  (pin_A4)
    #define MICROPY_HW_SPI1_SCK  (pin_A5)
    #define MICROPY_HW_SPI1_MISO (pin_A6)
    #define MICROPY_HW_SPI1_MOSI (pin_A7)
    #define MICROPY_HW_SPI2_NAME "SPI2"
    #define MICROPY_HW_SPI2_NSS  (pin_B12)
    #define MICROPY_HW_SPI2_SCK  (pin_B13)
    #define MICROPY_HW_SPI2_MISO (pin_C2)
    #define MICROPY_HW_SPI2_MOSI (pin_C3)
    #define MICROPY_HW_SPI3_NAME "SPI3"
    #define MICROPY_HW_SPI3_NSS  (pin_A15)
    #define MICROPY_HW_SPI3_SCK  (pin_B3)
    #define MICROPY_HW_SPI3_MISO (pin_B4)
    #define MICROPY_HW_SPI3_MOSI (pin_B5)
    // CAN busses
    #define MICROPY_HW_CAN1_TX (pin_B9)
    #define MICROPY_HW_CAN1_RX (pin_B8)
    #if 0
    #define MICROPY_HW_CAN2_TX (pin_B6)
    #define MICROPY_HW_CAN2_RX (pin_B12)
    #endif
    // USRSW is pulled low. Pressing the button makes the input go high.
    #define MICROPY_HW_USRSW_PIN        (pin_A0)
    #define MICROPY_HW_USRSW_PULL       (GPIO_PULLDOWN)
    #define MICROPY_HW_USRSW_EXTI_MODE  (GPIO_MODE_IT_RISING)
    #define MICROPY_HW_USRSW_PRESSED    (1)
    
    // LEDs
    #define MICROPY_HW_LED1             (pin_F10) // red
    #define MICROPY_HW_LED2             (pin_F9) // green 
    #define MICROPY_HW_LED_ON(pin)      (mp_hal_pin_low(pin))
    #define MICROPY_HW_LED_OFF(pin)     (mp_hal_pin_high(pin))
    
    // USB config
    #define MICROPY_HW_USB_FS              (1)
    //#define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)
    //#define MICROPY_HW_USB_OTG_ID_PIN      (pin_A10)
    
    #if 0
    // SDCard
    #define MICROPY_HW_SDMMC_D0 (pin_C8)
    #define MICROPY_HW_SDMMC_D1 (pin_C9)
    #define MICROPY_HW_SDMMC_D2 (pin_C10)
    #define MICROPY_HW_SDMMC_D3 (pin_C11)
    #define MICROPY_HW_SDMMC_CK (pin_C12)
    #define MICROPY_HW_SDMMC_CMD (pin_D2)
    
    // SD card detect switch
    #define MICROPY_HW_SDCARD_DETECT_PIN        (pin_A8)
    #define MICROPY_HW_SDCARD_DETECT_PULL       (GPIO_PULLUP)
    #define MICROPY_HW_SDCARD_DETECT_PRESENT    (GPIO_PIN_RESET)
    #endif
    

    重新编译生成hex

    4.extmod裁剪

    裁剪re,json,zlib等模块可以通过修改mpconfigport.h文件中相关宏实现

    5.后续

    后续准备移植LCD

    展开全文
  • Valgrind移植

    千次阅读 2020-10-17 14:34:16
    Valgrind移植与使用教程 源码版本:valgrind-3.16.1.tar.bz2 ubutun版本:20.04 交叉编译链:arm-none-linux-gnueabi- 交叉编译命令介绍: configure配置说明 说明 –build 执行代码编译的主机 –host ...
  • Contiki移植

    千次阅读 2015-03-26 21:40:03
    Contiki移植 一.系统层次结构 一个基于Contiki嵌入式系统的层次结构如图1所示,很明显,移植Contiki主要的工作是开发对应硬件的“板级层”软件包,同时解决Make工程的各种错误。 图1 Contiki系统层次结构 二....
  • uboot移植与OS移植

    2015-10-20 18:54:34
    Uboot移植:   gec2440-2009.11移植实验(较旧的移植步骤)    uboot SPL 加载uboot启动过程 及SPL移植介绍   uboot 访问jffs2文件系统   uboot移植添加目标板(很旧,新目录变化,复制最相近文件,修改不同...
  • ffmpeg移植

    千次阅读 2018-10-17 19:51:09
    编译环境:ubuntu12.04 交叉编译器:arm-none-linux-gnueabi-gcc 4.4.1 ... 1.yasm移植(可选,yasm是汇编编译器,ffmpeg加入它是为了提高编译速度,可在x264配置时使用--disable-asm选择不使用)  2.x264移植  ...
  • 做boot移植工作之前,首先要确定整个boot的启动流程,根据启动流程确定移植步骤。 首先看一下boot的启动流程: Bootloader执行最基本的硬件初始化操作。如关闭中断,关闭看门狗以避免处理器被复位,以及关闭...
  • Python3版本移植到ARM的通用方法(一键移植

    万次阅读 热门讨论 2018-07-19 09:53:28
    看了很多资料介绍如何将python移植到嵌入式设备当中,但总感觉杂乱五章,还移植不成功,但是经过我的多方摸索,成功的探索出了一条阳光大道,供各位网友借鉴参考。 我采用的方法可以成功移植python2.7以后的所有...
  • STM32移植 MQTT

    万次阅读 多人点赞 2018-03-26 09:59:13
    stm32移植mqtt 下载MQTT的库:Paho https://github.com/eclipse/paho.mqtt.embedded-c 将MQTTPacket\src目录下的文件添加到工程 MQTTPacket\samples下的transport.c、transport.h添加到工程。 //接收数据,...
  • MQTT 移植

    2018-11-15 10:05:11
    https://blog.csdn.net/mzwhhwj/article/details/77939165?utm_source=copy MQTT移植
  • 目前网上的大多数 QT 移植教程还都停留在 qt4.8 版本,或者还有更老的 Qtopia ,但是目前 Qt 已经发展到最新的 5.7 版本了,我个人也已经使用了很长一段时间的 qt5.6 for windows ,本文就来介绍一下QT在嵌入式环境的...
  • STM32移植LWIP官方demo

    万次阅读 2018-04-06 11:50:27
    STM32移植LWIP官方demo本文使用的IDE是IAR7.2,考虑到很多很使用Keil,本文也有keil版本的说明欢迎查看本文所在的系列,STM32的LWIP应用,点击跳转1、硬件说明主控:STM32F207VCT6,100管脚的封装网络PHY芯片...
  • zip 移植

    2018-04-20 14:53:18
    一、环境介绍 1.1 宿主机 1.2 嵌入式平台 1.3 交叉工具链 二、交叉编译 三、使用测试 一、环境介绍 1.1 宿主机 Ubuntu 1404 32 位 ...zip30移植所需源码包下载地址 二、交叉编译 ...
  • RTL8211移植

    2020-02-26 16:09:11
    对于网口驱动的移植,只要u-boot和kernel有支持的驱动,移植方法还是比较简单的。 u-boot中的RTL8211移植 对于PHY的移植,大多数情况下只需要修改config文件即可,但是也有例外,这时候我们就要仔细阅读芯片手册和...
  • 1、详细介绍了touchgfx4.13在cubemx5.5版本下的常规移植; 2、分享了一些touchgfx的开发思路; 3、介绍了如何移植别人的touchgfx工程到自己的工程中; 4、介绍了如何把工程迁移到RT-Thread; 5、给刚接触touchgfx的...
  • PYNQ移植实记 三、框架移植

    千次阅读 2019-04-10 15:16:01
    ZYNQ 7015系列板卡 pynq框架移植 By Dnknow.恒 三、框架移植 1、板级描述文件准备 在最小Soc创建完成之后,从Vivado工程目录中得到 \demo.runs\impl_1\demo_wrapper.bit \demo.sdk\demo_wrapper.hdf 两个文件...
  • 1、网卡驱动文件介绍 ...所以我们uboot中是移植而不是编写。 2、网卡移植的关键:初始化 (1)网卡初始化代码地方在: start_armboot init_sequence board_init dm9000_pre_init 这个函数就是移植的关
  • STM32F103移植mpu9250

    万次阅读 2019-12-04 09:26:18
    STM32F103移植mpu9250的一些问题解决方法
  • Android驱动开发与移植实战详解,完整扫描版

    千次下载 热门讨论 2014-03-13 21:39:22
    李骏、陈小玉编著的《Android驱动开发与移植实战详解》分为18章,依次讲解了Android系统的基本知识, Linux内核的基本知识,分析了Android系统的源码,深入分析HAL层的基本知识,GoldFish下的驱动、MSM内核和驱动、...
  • ucos移植

    2013-09-09 18:41:54
    ucos移植前的准备——自己写一个调度的系统(一)  ucos移植前的准备——自己写一个调度的系统(二)  ucos在AVR ATmega32上的移植(一)    ucos在AVR ATmega32上的移植(二)
  • 嵌入式Linux系统移植入门

    千人学习 2016-01-20 10:21:19
    本课程介绍嵌入式Linux系统移植的相关的,bootloader,内核分析与配置,文件系统知识。
  • LINUX移植——LED驱动移植

    千次阅读 2013-09-01 21:57:52
    通过前两篇文章的介绍,我们已经把linux内核移植到了tiny210上,但是看到的现象都是通过超级终端来观察的,下面了,我们介绍一下led灯的移植,给大家一个更直观的感受。这篇文章主要的内容如下: 1.对平台总线的简介...
  • 初识Linux 驱动移植 -- dm921概述配置内核dm9621 网卡驱动编译配置选项问题探索读 dm9621 MAC 地址失败网卡反复断开重连 概述 将kernel移植到开发板并能正常加载和启动内核后,发现网卡并没有工作,因此将网卡作为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,509
精华内容 54,603
关键字:

移植