- 博客(85)
- 资源 (4)
- 收藏
- 关注
转载 HEX BIN ELF 文件傻傻分不清楚
ELF文件中包含着ELF header,程序头部表,节区头部表等。由此可见,ELF所包含的文件信息量相比于BIN和HEX文件都要多,我们可以通过ELF文件生成另外HEX和BIN文件,但HEX和BIN并不能转为ELF。HEX和BIN文件都是单片机常见的刷新格式,HEX也可以直接转换为BIN文件,但是BIN要转化为HEX文件必须要给定一个基地址。
2023-10-08 14:58:39 341
原创 使用 Microchip SAM9X60 OTP 存储板卡的MAC地址和序列号
SAM9X60 处理器有部分OTP(One Time Programming) Aera 可用于存储user data,这样的话我们就可以将板卡 MAC Address和 SN 序列号写到固定的OTP User Area中。为什么要使用 OTP 区域存储MAC地址和序列号呢?答案是为了省钱。如果不使用OTP的话,可能要考虑采用 eeprom 等掉电非易失的存储保存这些固定信息,这样的话就多了一颗料的钱,还得占用I2C总线,PCB布线等。
2023-09-15 17:05:10 530
原创 Macronix MX25L25645G NOR Flash无法擦除问题分析
处理器使用的 SAM9X60, 使用的内核版本是 5.10.80,在调试 Macronix MX25L25645G NOR Flash时,发现flash驱动加载成功后,使用 mtd_debug 工具 erase flash时,擦除一整片flash区域时,命令执行速度很快,而且命令执行完没有报错,但是最后发现flash并没有真正被擦除。最先开始初始时,spi_nor_scan 中定义的是 SNOR_PROTO_1_1_1。对比spi_nor_select_read 和 spi_nor_select_pp。
2023-09-11 16:32:30 1706
转载 Makefile学习教程,转载《跟我一起写 Makefile》
转载至陈皓大神CSDN专栏,比较适合初学者:跟我一起写 Makefile(一)https://blog.csdn.net/haoel/article/details/2886跟我一起写 Makefile(二)https://blog.csdn.net/haoel/article/details/2887跟我一起写 Makefile(三)https://blog.csdn.net/haoel/article/details/2888跟我一起写 Makefile(四)https:
2021-07-07 13:18:27 369
原创 Linux下IPV6通信
1. IPv6简介1.1 简介 通常我们在Linux下使用的都是IPv4的方式来进行网络编程通信,本次介绍Linux下IPv6方式通信方式。 IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址。由于IPv4最大的问题在于网络地址资源不足,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也
2021-07-07 09:42:28 5743 1
原创 Linux下压力测试工具-stress
参考:https://blog.csdn.net/cojn52/article/details/89680093https://blog.csdn.net/supahero/article/details/1075461761. 下载和交叉编译下载地址:https://fossies.org/linux/privat/stress-1.0.4.tar.gz/在源码目录下执行命令安装:./configure CC=arm-linux-gnueabihf-gcc --host=arm-lin
2021-07-05 14:03:47 2961
原创 Linux-PHY 88E1512 驱动调试记录
1. 简介1)开发板平台:创龙 AM5728 (tl5728-easy-evm)2)PHY芯片:Marvell 88E151288E1512和88E1510都是一个系列的phy,采用marvell的通用phy驱动,驱动源码路径如下:drivers/net/phy/marvell.c2. 应用场景1)系统框图AM5728连接两个PHY,PHY0的工作模式是 RGMII to Copper (RGMII到电口),PHY1的工作模式是 RGMII to SGMII。两个PHY与处理器的连接方式都是
2021-06-18 15:25:34 19784 16
原创 Linux-交叉编译-linuxptp
参考文档:https://blog.csdn.net/BUPTOctopus/article/details/86246335Linux PTP官网介绍:http://linuxptp.sourceforge.net/1. LinuxPTP源码下载方式1)Windows浏览器输入网址下载:http://sourceforge.net/projects/linuxptp/files/latest/download ,下载后的压缩包拷贝到虚拟机;方式2)虚拟机上输入下面的命令下载:sudo gi
2021-06-18 14:50:50 1586 1
原创 Linux-交叉编译-gpsd
1. gpsd源码下载地址:https://gpsd.gitlab.io/gpsd/index.html#downloads点击下面的链接,可以从git库上拉取,也可以直接下载源码压缩包。压缩包下载地址:http://download-mirror.savannah.gnu.org/releases/gpsd/我这里下载的是:gpsd-3.18.tar.gz2. ubuntu 下安装交叉编译工具链以及编译工具scons1) 确保ubuntu系统已经安装python2) 安装交叉编译工
2021-06-18 14:24:21 2513 4
原创 Linux – TFTP服务器搭建 & FTP服务器搭建
一、ftp和tftp的区别参考:https://blog.csdn.net/woyaochenggong774/article/details/46324787注意FTP和TFTP协议是有区别的,二者不一样!二、开发板移植 TFTP服务器参考:https://blog.csdn.net/a642960662/article/details/664736281. 软件安装确保 busybox 工具已经添加了 inetd 和 tftpd 工具2. 修改配置文件 vi /etc/inetd.c
2021-06-18 13:41:21 920 1
原创 Linux udhcpc/udhcpd 移植
参考文档:http://blog.chinaunix.net/uid-14704264-id-4272838.htmlhttps://www.cnblogs.com/chenfulin5/p/9481249.html若系统busybox 自带了 udhcpc 和 udhcpd 工具udhcpc 作为客户端工具,用于动态获取IP;udhcpd 作为服务器工具,用于动态分配IP;若系统内没有带udhcpc 和udhcpd工具,就需重新编译并移植这两个工具至开发板。下载 udhcpc
2021-06-18 13:29:49 6052 2
原创 AM5728-移植ARM Ubuntu 20.04根文件系统
1. 获得ubuntu基本裸系统有两种方式获取Ubuntu基本裸文件系统,一种是从Ubuntu官网直接下载裸文件系统压缩包,另一种是利用debootstrap工具下载裸文件系统。1.1 从ubuntu官网下载在 windows 系统网页中下载http://cdimage.ubuntu.com/ubuntu-base/releases/选择20.04版本:选择版本:ubuntu-base-20.04.1-base-armhf.tar.gz将此版本压缩包拷贝至虚拟机中,我使用的虚拟机如下:
2021-06-18 11:04:53 6186 3
原创 AM5728-UDP通信异常问题
1. 测试简介使用开发板eth1网卡(与交换芯片88E6390X -Port9连接),经过交换芯片(Port1,对应前面板LAN1口)与PC机进行UDP通信测试。系统框图如下所示。主控板运行nc命令或者运行自己编写的UDP测试程序。 nc命令使用参考:https://www.cnblogs.com/nmap/p/6148306.html UDP测试程序虚拟机路径: PC机使用网络调试助手网络调试工具-NetAssist以及Linux下的nc网络调试工具配合使用,参考:https
2021-06-18 10:37:12 961 1
原创 AM5728-NOR+eMMC启动-主备分区切换功能实现
一、 方案框图基于广州创龙TL5728-EasyEVM 开发板,设计了NOR+eMMC启动及升级方案,实现框图如下所示。eMMC 有三大分区,分别是boot分区、rootfs1分区、rootfs2分区(backup),在创龙提供的demo脚本基础上进行了eMMC分区修改。NOR在调试时,遇到了Spansion 和镁光不同型号的NOR出现读写问题。创龙提供了支持报告,可参考。另外自己编写了NOR烧写脚本。高端内存读写操作使用了自定义Uboot命令,myhello命令。分区切换通过修
2021-06-18 09:55:31 1367
原创 AM5728-Uboot SPL 代码走读
1 执行流程am5728的cpu上电后,执行流程:ROM->MLO(SPL)->u-boot.img第一级bootloader:引导加载程序,板子上电后会自动执行这些代码,如启动方式(SDcard、SPI、NOR),然后跳转至第二级bootloader。这些代码应该是存放在 176KB 的 ROM 中第二级bootloader:MLO(SPL),用于硬件初始化,关看门狗,关中断,设置CPU时钟频率、速度、加载uboot.img、dts等操作,MLO文件应该会被映射到 64 KB的 Inte
2021-06-18 09:20:09 623
原创 AM5728-Uboot 读SPI NOR Flash 代码走读
CMD:sf probe # NOR初始化sf read mem_addr nor_offset size #从NOR相应的分区(偏移地址)读取指定大小的字节到内存中路径:u-boot-2017.01-g70d59ba-v2.0\cmd\sf.cdo_spi_flash_read_write跟踪 spi_flash_read 函数:路径:\u-boot-2017.01-g70d59ba-v2.0\include\spi_flash.h如果定义了 CONFIG_DM_S
2021-06-17 17:34:12 1135 2
原创 Linux下CAN总线通信调试记录
1. 概述 CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率最高可达1Mbps。 SAMA5D27处理器的CAN控制器使用的是BOSCH公司的MCAN IP核,其手册中MCAN章节的内容与BOSCH的MCAN用户手册基本一致。 我们的CAN通信测试如下:使用处理器连接CAN分析仪,分析仪为USB转CAN,分析仪连接PC机。在PC机上运行CAN分
2021-06-17 15:20:04 3169 1
转载 PCIe通信:配置空间
参考:http://www.ssdfans.com/?p=8210《老男孩读PCIe之六:配置和地址空间》 每个PCIe设备,有这么一段空间,Host软件可以读取它获得该设备的一些信息,也可以通过它来配置该设备,这段空间就叫做PCIe的配置空间。不同于每个设备的其它空间,PCIe设备的配置空间是协议规定好的,哪个地方放什么内容,都是有定义的。PCI或者PCI-X时代就有配置空间的概念,那时的配置空间如下: 整个配置空间就是一系列寄存器的集合,其中Type 0是Endpoint的配置,Ty
2021-06-17 09:32:22 398
原创 PCIe通信:方案
LS1043A与FPGA之间的PCIe通信FPGA将ADC采集的数据通过PCIe传输给LS1043。LS1043使用的SerDes配置如下: C和D通道使用了PCIe#2和PCIe#3控制器,与FPGA连接。 实际的使用过程中,仅使用了PCIe#3控制器,PCIe#2控制器没有使用。 FPGA型号:使用的是Xilinx 7系列 XC7K325T-2FFG900I。#define PCI_VENDOR_ID_XILINX 0x10ee#define PCI_DEVICE_ID_XI
2021-06-17 09:31:49 1021
原创 PCIe通信:LS1043A与FPGA
PCIe调试涉及的基础知识较多,在调试过程中看的糊里糊涂。写个帖子记录一下。RC和EPTLP的类型:Configure、Memory、I/O、Message配置空间BAR空间读写MSI中断DMABus MasterEP-Device ID VenderID 用于设备驱动进入probe函数PCIe扫描过程LS1043A处理器侧需重点关注的东西:MSI响应寄存器-SCFG_GnMSIIRInbound、Outbound配置...
2021-06-17 09:30:54 532
原创 4G 模组连接USB时的无法枚举成功原因分析
1. 硬件电路:2. 问题描述:主机Linux系统的USB连接了一个HUB,hub为一拖二设计,分别连接SIM7600模块和USB网口芯片(SR9900),网口芯片每次识别正常,SIM7600模块无法识别。3. 问题分析过程4 总结...
2021-06-17 09:29:31 1185
原创 Linux内核设置MAC地址的过程-以SAMA5D27处理器为例
1 引言 SAMA5D27处理器有一个Ethernet MAC(GMAC)控制器,支持10/100 Mbps。Linux下GMAC控制器的驱动源码路径为: \linux-at91\drivers\net\ethernet\cadence\macb_main.c。 查看SAMA5D27处理器内核启动日志,找到网卡初始化部分,查看硬件MAC地址的设置。 进入系统后,执行ifconfig查看网卡信息。下图中eth0 对应的是SAMA5D27 GMAC,连接的PHY KSZ8081。
2021-06-17 09:28:53 4920
原创 新增NAND 的MTD分区,并手动挂载文件系统
参考:https://zhidao.baidu.com/question/432878013833222444.htmlhttp://blog.chinaunix.net/uid-28236237-id-4164656.htmlhttps://blog.csdn.net/xiaoxiaozhu2010/article/details/180871971. 新增NAND MTD分区1) 设备树中修改:arch\arm\boot\dts\at91-sama5d27_som1_ek.dts2) 系
2021-06-17 09:28:27 3892
原创 Linux下光PHY-KSZ8041调试记录
参考:https://blog.csdn.net/firstlai/article/details/53098496下载的平台内核源码为: at91-sama5d27_som11 硬件环境 A5处理器有一个GMAC控制器。要想实现以太网通信,需要加上一个PHY芯片与MAC连接。使用的PHY芯片是 KSZ8041FTL,光口PHY。该芯片的厂商为Micrel。 内核:经过Atmel基于A5平台定制的4.9.0系内核; 硬件:A5芯片,其中mac contorller是使用Caden
2021-06-17 09:27:49 2416 1
原创 FPGA从串模式启动-比特文件加载
1 FPGA从串模式加载及升级设计 FPGA程序加载及升级功能:通过配置FPGA引脚,使得FPGA工作在从串模式下,处理器通过SPI将比特流文件传送给FPGA,用于FPGA从串模式启动。1.1 硬件连线 处理器与FPGA硬件连接如下。FPGA硬件配置框图如下。FPGA从串模式加载时序如下。相关引脚解释: M0和M1引脚:用于配置FPGA的工作模式。salve serial 模式或master serial模式; PROGRAM_B和INIT_B引脚: 从串模式下,作为起
2021-06-16 15:21:24 3120 4
原创 KSZ8081RNB-PHY芯片调试记录
1 概述 选用的PHY型号为Micrel KSZ8081-RNB 。该PHY与处理器MAC 控制器的Interface为RMII模式,对外的Media Interface为电口(RJ45)。硬件原理图设计如下。2 驱动修改情况 KSZ8081的驱动内核已支持,源码路径:\linux-at91\drivers\net\phy\micrel.c。 一般情况下,仅需修改设备树添加phy节点。在头文件: \linux-at91\include\linux\micrel_phy.h中找到
2021-06-16 15:10:48 5512 4
原创 Uboot-sama5d27-NAND初始化代码走读
elevator-4.0-ida-driver\u-boot-at91\common\board_r.c进入 nand_init()elevator-4.0-ida-driver\u-boot-at91\drivers\mtd\nand\atmel_nand.c进入board_nand_init,board_nand_init和具体的平台相关进入 atmel_nand_chip_initnand_scan_ident读取flash ID并建立MTD相应字段;nand_scan_tail填
2021-06-16 14:37:08 270
原创 Linux串口驱动分析及移植
1 概述 在Linux中,常碰到“控制台”、“终端”、“console”、“tty”等术语,也会经常使用一些设备文件:/dev/console、/dev/ttyS0、/dev/ttyUSB0等。tty是Teletype的缩写,Teletype是最早出现的一种终端设备,Linux通常使用tty来表示“终端”,终端设备的种类有很多,比如串行终端、键盘和显示器、通过网络实现的终端等。 UART与USART都是单片机上的串口通信, UART(universal asynchronous receiv
2021-06-16 14:26:06 9519 1
原创 看门狗芯片-SP706-调试记录
一、 看门狗芯片1.1 看门狗芯片与处理器引脚连接 本次主控单元使用的看门狗芯片为SP706芯片 。 引脚定义:1.2 使能外部看门狗(1) 看门狗芯片SP706芯片手册中的电路图:(2) 看门狗与主控板连接原理图如下所示: 当J2接上跳线帽时,开启看门狗。反之,看门狗关闭。 独立的看门狗芯片:这种看门狗主要有一个用于喂狗的引脚(一般与CPU的GPIO相连)和一个复位引脚(与系统的RESET引脚相连),如果没有在一定时间内改变喂狗脚的电平,复位引脚就会改变状态复位C
2021-06-16 13:52:05 7599 1
原创 Linux开机自启动脚本添加
shell编写了一个散热风扇开机自启动脚本,需要添加到Linux系统文件系统中。 功能实现步骤: 1. 编写风扇启动的shell脚本: fan_init.sh, 注意编写的脚本应为unix格式,要不然linux 下无法执行,windows下编辑的.sh文件的格式为dos格式,linux下可以使用dos2unix命令将dos格式修改为unix格式; 2. 把脚本: fan_init.sh 放到 /etc/init.d 目录下,记得修改脚本的执行权限:chmod +x fan
2021-06-16 13:43:15 209
原创 I2C驱动-module_i2c_driver 分析
I2C driveri2c.h将参数(ch452_driver)传入函数 module_driver.module_driver(ch452_driver, i2c_add_driver, i2c_del_driver)下面来看module_driver的定义:(device.h)理解上述宏定义后,将module_i2c_driver(ch452_driver) 按其宏定义展开就可以得到:static int __init ch452_driver_init(void) \{
2021-06-16 13:36:49 2990 1
转载 基于RK3399的Uboot-2018-09分析 v1
转载至:下载地址:https://pan.baidu.com/s/1YcQ1XpFyzmNcr1afw1RhgQ目录截图:
2021-06-16 13:25:50 347
原创 Linux下 SpeedTest 工具测速
1. 概述 目的: 用来测试开发板上的4G 模块网络上传和下载速度; 在Linux的命令行中使用speedtest-cli来测试宽带连接速度。speedtest-cli是一个使用python编写的命令行脚本,通过调用speedtest.net测试上下行的接口来完成速度测试。2. 安装工具 访问该网址:https://github.com/sivel/speedtest-cli ,可以查看下载方法; Linux 下可以使用 wget 命令下载speedtest-cli脚本
2021-06-16 11:38:02 4202
原创 4G模组GPS定位功能使用说明
1 概述 高新兴(ME3630-W)和SIMcom4G模块(7600CE)均带有GPS定位功能,下面介绍两个模块GPS定位功能的使用。2 GPS功能使用说明 GPS定位模式分为三种类型,分别是Standalone模式、MS Based模式、MS Assisted模式。 Stand Alone模式是目前比较成熟、通用的GPS定位模式,仅通过卫星信号定位。MS Based模式也称为MSB,先从服务器下载卫星信息,然后通过卫星信号定位,会比StandAlone模式搜星过程快一些。类似于最
2021-06-16 11:21:04 10517
原创 Linux启动后如何查看Uboot版本
Uboot版本信息保存到环境变量当中如bootargs,或者将它写到某个分区,内核起来后再去读取这个分区。 若保存到bootargs中,Linux系统启动后,可以通过命令“cat /proc/cmdline” 查看。...
2021-06-15 09:04:31 4380
原创 SAMA5D27-移植8G NAND Flash(SAM-BA修改)
1 概述 主控板采用Microchip 的SAMA5D27处理器。由于项目新需求,需要将NAND Flash型号(Micron,MT29F4G08ABAEAWP,4Gb)更换为旺宏-8G NAND Flash型号:MX60LF8G28AD。 需要适配修改的地方:PMECC重新计算;修改镜像包中的 .qml文件,修改pmecc的数值;修改sam-ba工具,samba扫描时将8G flash识别成了4G大小,修改文件将大小修改为固定的8G,这样在擦除时就是全盘擦除。设备树NAND节点修
2021-05-17 13:28:57 3767
原创 Microchip SAMA5D4 PmeccConfigure
参考:开发板使用介绍(SAMA5D4 Xplained Board):https://www.linux4sam.org/bin/view/Linux4SAM/Sama5d4XplainedMainPage#Build_From_source_codePMECC 介绍https://www.linux4sam.org/bin/view/Linux4SAM/PmeccConfigureEnable and Configure PMECC (Programmable Multibit ECC) in
2021-05-17 11:32:21 242
原创 TI Matrix GUI测试-Launcher中添加自己的APP
参考:米尔科技http://www.myir-tech.com/bbs/forum.php?mod=viewthread&tid=71401 引言 Matrix 是一款由 Ti 官方提供,基于 HTML5 的图形界面,像智能手机一样,罗列多行图变应用,可以很方便的在这之上添加自己的应用程序。主界面如下:我们这里要进行的测试,便是在TI Matrix GUI Launcher中添加自己的APP。1.1 Matrix的启动这里使用创龙的AM5728 Demo板进行试验。Linux
2021-05-14 17:59:07 1343 2
原创 Marvell以太网交换芯片-88E6390x-调试过程
1 引言 下载Marvell的器件资料,需要公司与其签订NDA保密协议。Marvell 用户访客登陆网址:https://marvell-customers.okta.com/login/login.htm找到相应的器件,下载相关的资料。2 硬件环境准备仿真器:USB2SMI用途:用于交换芯片eeprom 镜像烧写,交换芯片从eeprom读取镜像进行启动和配置相关使用文档:《MV-S400452-00_USB2SMI-Module-DC201-Adapter-User-Guide.p
2021-05-13 17:26:45 9223 10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人