STM32MP1移植ESP-Hosted(1)

设备树

  • 实物图
    • 把RESET飞线和PF13焊接连通,使用PF13控制RESET复位
    • 注意开发板底板上SPI_A/B的SCK/MISO/MOSI是相同的SPI5总线
      • SPI_B SCK接ESP IO1
      • SPI_B MOSI接ESP IO18
      • SPI_B MISO接ESP IO19
      • PH5接ESP IO0 CS
      • SPI_A SCK接ESP RXD(SCK_A引脚不能悬空,否则加载ko异常报错)
      • PA13接ESP IO5 handshake
      • PA5接ESP data ready
      • PF13接ESP RESET
    • 其余引脚按照以下引脚分配
      STM32MP1引脚配置
      
      SPI5_SCK - PH6 - GPIO51
      SPI5_MISO - PH7 - GPIO52 
      SPI5_MOSI - PF11 - GPIO118    
      CS - PH5 - GPIO91
      date ready - PA5 - GPIO29
      handshake - PA13 - GPIO116
      EN - PF13 - GPIO93
      

在这里插入图片描述

  • 100ask_stm32mp157_pro-sdk\Linux-5.4\arch\arm\boot\dts\stm32mp157-100ask-pinctrl.dtsi

    	spi5_pins_a: spi5-0 { 
    	        pins1 {
    			pinmux = <STM32_PINMUX('F', 11, AF5)>, /* SPI5_MOSI */
    				 <STM32_PINMUX('H', 6, AF5)>; /* SPI5_SCK */
    			bias-disable;
    			drive-push-pull;
    			slew-rate = <1>;
    		};
                    pins2 {
                            pinmux = <STM32_PINMUX('H', 7, AF5)>; /* SPI5_MISO */
                            bias-disable;
                    };
                    pins3 {
                           pinmux = <STM32_PINMUX('H', 5, GPIO)>; // 修改GPIOG10 -> GPIOH5(AF5 -> GPIO)
                           drive-push-pull;
                           bias-pull-up;
                           output-high;
                           slew-rate = <1>;
                    };
    	};
    	spi5_sleep_pins_a: spi5-sleep-0 {
    		pins {
    	                pinmux = <STM32_PINMUX('F', 11, ANALOG)>, /* SPI5_MOSI */
                                     <STM32_PINMUX('H', 6, ANALOG)>, /* SPI5_SCK */
                                     <STM32_PINMUX('H', 7, ANALOG)>, /* SPI5_MISO */
                                     <STM32_PINMUX('H', 5, ANALOG)>; // 修改GPIOG10 -> GPIOH
            	};
    	};
    
  • 100ask_stm32mp157_pro-sdk\Linux-5.4\arch\arm\boot\dts\stm32mp157c-100ask-512d-v1.dts

    &spi5 {
            pinctrl-names = "default", "sleep";
            pinctrl-0 = <&spi5_pins_a>;
            pinctrl-1 = <&spi5_sleep_pins_a>;
            status = "okay";
            cs-gpios = <&gpioh 5 GPIO_ACTIVE_LOW>;
    #if 0 // TODO: check
            spidevesp: esp32@0{
                    compatible = "brcm,bcm2708";
                    spi-max-frequency = <60000000>;
                    reg = <0>;
            };
    #endif
    };
    
  • 声明环境变量

    export ARCH=arm
    export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
    export PATH=$PATH:/home/xxxx/Downloads/01_STM32/100ask_stm32mp157_pro-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
    
  • 使用100ask_stm32mp157_pro_defconfig

    make 100ask_stm32mp157_pro_defconfig
    

    在这里插入图片描述

  • 编译设备树和内核

    make dtbs
    make uImage LOADADDR=0xC2000040
    

    在这里插入图片描述

  • 将stm32mp157c-100ask-512d-v1.dtb和uImage复制到tftp目录,在uBoot下按空格,设置从网络启动

    setenv mybootnet 'tftp c2000000 uImage;tftp c4000000 stm32mp157c-100ask-512d-v1.dtb;bootm c2000000 - c4000000'
    saveenv
    run mybootnet
    

    如果遇到网络错误,设置serverip和ipaddr

    setenv serverip 192.168.xx.xx
    setenv ipaddr 192.168.xx.xx
    
  • 确保板子上有根文件系统

  • 硬件连接,底板上SPI有SCK不能浮空,否则会异常

参考文章:
DongshanPI Seven_stm32mp157-BaseBoardSCH.pdf
嵌入式Linux应用开发完全手册V5.2_STM32MP157_Pro开发板.pdf
【正点原子】STM32MP1嵌入式Linux驱动开发指南V2.1.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值