- 博客(527)
- 资源 (10)
- 收藏
- 关注
原创 windows下搭建tftp服务器+网络启动Linux
在这里插入图片描述](https://i-blog.csdnimg.cn/direct/272f1fcf2fb14673aad0534510402cfb.png。
2025-02-09 13:05:52
354
1
原创 esptool.py读取esp8266的flash内容、烧录flash
在ESP8266_RTOS_SDK\components\esptool_py\esptool生成一个flash_dump.bin文件。
2025-02-08 13:52:50
211
原创 ESP8266 flash地址
ota_0 和 ota_1:用于存储 OTA 应用程序,每个分区大小为 1.5 MB。spiffs:用于存储 SPIFFS 文件系统数据,大小为 896 KB。nvs:用于存储 Wi-Fi 配置等非易失性数据,大小为 16 KB。otadata:用于存储 OTA 更新的状态信息,大小为 8 KB。phy_init:用于存储 RF 初始化数据,大小为 4 KB。
2025-02-08 10:29:23
167
原创 62. Linux内核移植
最终编译出:zImage,和 imx6ull-14x14-evk-emmc.dtb,imx6ull-14x14-evk.dtb。将zImage,和 imx6ull-14x14-evk-emmc.dtb拷贝到tftpboot目录下,然后在uboot中通过tftp服务启动。复制arch/arm/boot/dts/imx6ull-14x14-evk.dts文件为imx6ull-alientek-emmc.dts。复制imx6ull-14x14-evk.dts为imx6ull-my-emmc.dts。
2025-02-07 21:34:52
865
原创 61. Linux内核启动流程简介
从arch/arm/kernel/vmlinux.lds分析Linux内核第一行启动代码。找到入口函数是stext,image和zImage是经过压缩的,Linux内核会先进行解压缩,解压缩完成以后就要运行Linux内核。要求:1、MMU关闭2、D cache关闭3、I cache无所谓4、r0 = 0。6、r2=atags 或设备树。
2025-02-07 19:57:37
259
原创 60. Linux内核顶层Makefile分析
我们需要zImage文件,但是前面一直说的是生成vmlinux,通过make或make all来编译Linux内核。二、make xxx_defconfig过程。一、Linux顶层Makefile基本流程。四、built-in.o文件编译生成过程。五、make zImage过程。
2025-02-06 21:33:25
125
原创 59. Linux内核源码目录分析
vmlinux 是编译出来的最原始的内核文件,是未压缩的,比如正点原子提供的 Linux 源码编译出来的 vmlinux 差不多有 16MB。3、arch/arm/boot/dts这个目录,存放Linux内核所有设备树文件,包括dts编译后对应的.dtb文件。2、arch/arm/boot/ 这个目录,Linux内核编译完成以后,在此目录下生成image,zImage。1、分析Linux内核的时候,最好编译一遍Linux内核,然后将其压缩,拷贝到Windows下。二、Linux内核VScode工程创建。
2025-02-06 20:28:14
139
原创 52. Uboot命令使用
其远没有 MDK、 IAR的一键下载方便,在 Linux 内核调试阶段,如果用这个烧写软件的话将会非常浪费时间,而这个时候网络调试的优势就显现出来了,可以通过网络将编译好的 linux 镜像和设备树文件下载到 DRAM 中,然后就可以直接运行。addr 是数据读取到 DRAM 中的地址, blk 是要读取的块起始地址(十六进制),一个块是 512字节,这里的块和扇区是一个意思,在 MMC 设备中我们通常说扇区, cnt 是要读取的块数量(十六进制)。设置环境变量,也可以自定义环境变量,也可以删除环境变量。
2025-02-06 18:28:11
713
原创 58. 正点原子官方Linux内核编译与体验
本章的移植我们就使用 NXP 提供的 Linux 源码, NXP 提供 Linux源码已经放到了开发板光盘中,路径为: 1、例程源码-》 4、 NXP 官方原版 Uboot 和 Linux-》linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2。先看一下如何编译 Linux 源码,这里编译以 I.MX6U-ALPHA 开发板移植好的 Linux 源码,已经放到了开发板光盘中,路径为: 1、例程源码-》 3、正点原子 Uboot 和 Linux 出厂源码-》
2025-02-06 18:14:58
324
原创 56. Uboot移植实验
首先就是通信效率和速度,一般 SOC 内部的 MAC 是带有一个专用 DMA 的,专门用于处理网络数据包,采用 SRAM 来读写 DM9000 的速度是压根就没法和内部 MAC+外部 PHY 芯片的速度比。从这里也可以看出,三星的 2440、 4412 这些芯片设计之初就不是给工业产品用的,他们是给消费类电子使用的,比如手机、平板等,手机或平板要上网,可以通过 WIFI 或者 4G,我是没有见过哪个手机或者平板上网是要接根网线的。pixclock:像素时钟,每个像素时钟周期的长度,单位为皮秒。
2025-02-06 18:10:55
549
原创 55. Uboot启动流程详解
通过函数 initcall_run_list 来运行初始化序列 init_sequence_f 里面的一些列函数, init_sequence_f 里面包含了一系列的初始化函数, init_sequence_f 也是定义在文件common/board_f.c 中,由于 init_sequence_f 的内容比较长,里面有大量的条件编译代码,这里为了缩小篇幅,将条件编译部分删除掉了,去掉条件编译以后的 init_sequence_f 定义如下。必须要将8785dcf8换为重定位后的rel_a地址。
2025-02-06 17:59:10
949
原创 54. Uboot顶层Makefile分析
继续回到示例代码 31.3.9.1 中, 第 249 行定义变量 KCONFIG_CONFIG, uboot 是可以配置的,这里设置配置文件为.config, .config 默认是没有的,需要使用命令“make xxx_defconfig”对 uboot 进行配置,配置完成以后就会在 uboot 根目录下生成.config。默认情况下.config 和xxx_defconfig 内容是一样的,因为.config 就是从 xxx_defconfig 复制过来的。在Makefile里临时增加打印信息。
2025-02-06 17:48:45
691
原创 53. Uboot命令使用
其远没有 MDK、 IAR的一键下载方便,在 Linux 内核调试阶段,如果用这个烧写软件的话将会非常浪费时间,而这个时候网络调试的优势就显现出来了,可以通过网络将编译好的 linux 镜像和设备树文件下载到 DRAM 中,然后就可以直接运行。addr 是数据读取到 DRAM 中的地址, blk 是要读取的块起始地址(十六进制),一个块是 512字节,这里的块和扇区是一个意思,在 MMC 设备中我们通常说扇区, cnt 是要读取的块数量(十六进制)。设置环境变量,也可以自定义环境变量,也可以删除环境变量。
2025-02-02 19:32:14
735
原创 51. 正点原子官方Uboot编译与体验
在 uboot 中,通过“make xxx_defconfig”来配置 uboot, xxx_defconfig 就是不同板子的配置文件,这些配置文件都在 uboot/configs 目录中。2、uboot就是一个bootloader,作用就是用于启动Linux或其他系统。2、SOC厂商会从uboot官网下载某一个版本的uboot,然后在这个版本的uboot上加入相应的SOC以及驱动。3、如果配置过uboot,那么一定要注意shell脚本会清除整个工程,那么配置的文件也会被删除,配置项也会被删除掉。
2025-02-01 16:35:27
398
原创 50. 正点原子官方系统镜像烧写实验
1、首先向SD卡(FAT32)烧写一个系统,然后使用SD卡启动,启动以后在Linux中执行烧写到EMMC或NAND中。使用OTG烧写的时候要先把SD卡拔出来,拨码拨到SD卡启动。等USB OTG与电脑连接成功以后就可以再将SD卡插进去了。1、在Windos使用NXP提供的mfgtool来向开发烧写系统。需要用先将开发板的USB_OTG接口连接到电脑上。Mfgtool工具是向板子先下载一个Linux系统,然后通过这个系统来完成烧写工作。,几分钟烧录后,拨码拨到emmc启动。
2025-02-01 14:31:32
192
原创 42. PWM背光实验
1、6ULL的PWM是16位计数器,2、有4个16位的FIFO。3、一个12位的分频器4、正点原子LCD屏幕的背光IO连接到了GPIO1_IO08上。GPIO1_IO08可以复用位PWM1_OUT信号。PWM计数器从0X0000开始计数,当计数器的值等于PWMPR+1的时候定时器就会重新开始下一个周期的运行,因此PWMPR寄存器控制着PWM频率。
2025-02-01 13:28:15
302
原创 40. SPI实验
1、SPI相比I2C最大的优势有两点:一个是速度快,最高可以大几十M,甚至上百MHz,第二个就是SPI是个全双工。2、SPI接口和I2C一样,一个SPI接口可以连接多个SPI外设,SPI通过CS引脚/数据线,片选引脚来选择和哪个SPI外设通信。SPI通信前先将指定的SPI外设对应的CS引脚拉低来选中此设备。3、ALPHA开发板上通过ECSPI3接口连接了一个6轴传感器,引脚如下:ECSPI3_SCLK : UART2_RXECSPI3_MOSI:UART2_CTSECSPI3_SS0:UART2_
2025-02-01 12:27:20
862
原创 39. I2C实验
1、AP3216C是一个三合一的环境光传感器,ALS+PS+IRLED,ALS是环境光,PS是接近传感器,IR是红外LED灯。I2C接口,最高400Kbit/S的频率。2、环境光,ALS是16位输出。3、接近传感器PS,10bit输出。IR传感器也是10bit4、AP3216C的从机地址位0X1E。5、0X0A是IR Ddata low。Bit7为0的时候表示IR和PS数据有效,为1的时候IR和PS数据无效。Bit1:0是IR的低2位。
2025-02-01 11:20:24
889
原创 37. RGBLCD实验
1、像素点于一个“小灯“,不管是液晶屏,还是手机,平板,RGBLCD屏幕他都是有由一个个的彩色小灯构成的。彩色点阵屏每个像素点有三个小灯,红色、绿色和蓝色,也叫做RGB。RGB就是光的三原色。通过调整RGB三种颜色的比例,就可以实现姹紫千红的世界。2、分辨率要想显示文字,图片,视频等等就需要很多个像素点,分辨率说的就是像素点的个数,1080P、720P、2K、4K,8K。1080P=19201080,表示一行有1920个像素点,一列有1080个。显示器有尺寸!24村,27村、55寸。
2025-01-31 21:37:53
605
原创 36. printf
在 I.MX6U-ALPHA 开发板上也可以使用此方法,将 printf 和 scanf 映射到串口上,这样就可以使用 SecureCRT 作为开发板的终端,完成与开发板的交互。图 22.3.2 就是 stdio 里面的所有文件, stdio 里面的文件其实是从 uboot 里面移植过来的。这里要注意一点, stdio 中并没有实现完全版的格式化函数,比如 printf 函数并不支持浮点数,但是基本够我们使用了。第 2 行修改变量 TARGET 为“printf”,也就是目标名称为“printf”。
2025-01-31 20:27:23
287
原创 35. 串口实验
Bit1使能UART的接收,我们要配置为1。CSCDR1寄存器的UART_CLK_SEL位设置UART的时钟源,为0的时候UART时钟源为80MHz。UART_UCR1的bit0是UART的使能位,为1的时候使能UART。CSCDR1寄存器的UART_CLK_PODF位控制分频,一般设置为1分频,因此UART_CLK_ROOT=80MHZ。UART1_TXD使用的IO为UART1_TX_DATA,UART1_RXD所使用的IO为UART1_RX_DATA。UART_UCR3的bit2必须为1!
2025-01-30 22:16:55
392
原创 34. 高精度延时实验
以前的延时函数就采用空指令执行来实现,延时肯定不准确!当我们修改了6ULL的主频以后,采用空指令的延时函数就不准了!因此我们需要高精度的延时函数,而且不随着主频的变化而改变。STM32使用SYSTICK这个硬件定时器来实现高精度延时,因此我们可以在6U里面使用一个硬件定时器来实现高精度延时。本讲我们使用6U的GPT定时器来实现高精度延时。GPT定时器是32位向上计数器。GPT定时器有捕获的功能。GPT定时器支持比较输出或中断功能。GPT定时器有一个12位的分频器。
2025-01-30 21:17:48
241
原创 arm-linux-gnueabihf安装
在/usr/local/arm 目录中对交叉编译工具进行解压,解压命令如下: sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz。修改环境变量,使用 VI 打开/etc/profile 文件,命令如下: sudo vi /etc/profile。修改好以后就保存退出,重启 Ubuntu 系统,交叉编译工具链(编译器)就安装成功了。复制到/home/ark01/tool。关闭:wsl --shutdown。
2025-01-30 10:17:40
788
原创 在 WSL2 中重启 Ubuntu 实例
关闭所有 WSL2 实例。:尝试重启 Ubuntu,随后需手动重新打开。关闭并重新打开终端标签页:快速重启 Ubuntu。这些方法都能有效重启 WSL2 中的 Ubuntu 实例。
2025-01-30 09:46:03
591
原创 虚拟机里网络设置-桥接与NAT
桥接:连接同一网络的不同网段,不修改数据帧,工作在数据链路层。NAT:连接私有网络与公有网络,修改数据包的IP地址,工作在网络层。两者适用于不同的网络需求,桥接用于扩展局域网,NAT用于连接不同网络并隐藏内部结构。在虚拟机(如VMWare、VirtualBox、KVM等)中,**桥接(Bridged)和NAT(Network Address Translation)**是两种常见的网络连接模式,它们的核心区别在于虚拟机如何与外部网络通信,以及虚拟机在外部网络中的可见性。1. 网络连接方式。
2025-01-29 09:29:18
1010
原创 ESP8266 默认OTA分区下OTA固件启动日志里分区解析【2M flash】
nvs:存储 WiFi 配置和其他非易失性数据。otadata:存储当前 OTA 分区的信息。phy_init:存储 RF 校准数据。ota_0 和 ota_1:两个 OTA 分区,用于存储固件。设备可以在两个分区之间切换以实现 OTA 升级。
2025-01-23 17:39:45
174
原创 python创建一个httpServer网页上传文件到httpServer
双击serverOpen.bat运行httpServer。uploads文件夹下出现。'上传过程中发生错误!
2025-01-21 11:11:24
1267
原创 网页固件升级界面设计
/ ESP8266的TCP端口。// ESP8266的IP地址。// 添加延迟以避免阻塞。"请先选择固件文件!// 继续发送下一个块。// 开始发送第一个块。// 每次发送1KB。
2025-01-20 17:08:01
779
ServiceTest(Android创建服务实例图文实测)
2020-10-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人