综合门户网站源码,在线图片编辑源码,wordpress语言设置为繁体字,门户网站应该怎么做在某鱼上找了一个友善之臂的Tiny6410开发板用来体验一下嵌入式开发。这次先体验一下裸机程序的开发流程#xff0c;由于这个开发板比较老旧了#xff0c;官方文档有很多过期的内容#xff0c;所以记录一下整个过程。
1. 交叉编译器安装
按照光盘A中的文档《04- Tiny6410 L…在某鱼上找了一个友善之臂的Tiny6410开发板用来体验一下嵌入式开发。这次先体验一下裸机程序的开发流程由于这个开发板比较老旧了官方文档有很多过期的内容所以记录一下整个过程。
1. 交叉编译器安装
按照光盘A中的文档《04- Tiny6410 Linux开发指南.pdf》的 1.3.5 节描述用光盘中的 arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz 文件解压后运行命令 arm-linux-gcc -v 得到的结果是:
faundfaund-Virtual-Machine:/opt/FriendlyARM/toolschain/4.5.1/bin$ ./arm-linux-gcc
bash: ./arm-linux-gcc: No such file or directory
faundfaund-Virtual-Machine:/opt/FriendlyARM/toolschain/4.5.1/bin$ ./arm-none-linux-gnueabi-gcc
bash: ./arm-none-linux-gnueabi-gcc: No such file or directory
faundfaund-Virtual-Machine:/opt/FriendlyARM/toolschain/4.5.1/bin$ ./arm-none-linux-gnueabi-cpp
bash: ./arm-none-linux-gnueabi-cpp: No such file or directory
faundfaund-Virtual-Machine:/opt/FriendlyARM/toolschain/4.5.1/bin$ ./arm-none-linux-gnueabi-gcc
bash: ./arm-none-linux-gnueabi-gcc: No such file or directory
faundfaund-Virtual-Machine:/opt/FriendlyARM/toolschain/4.5.1/bin$ sudo ./arm-none-linux-gnueabi-gcc
[sudo] password for faund:
sudo: unable to execute ./arm-none-linux-gnueabi-gcc: No such file or directory原因应该是官方光盘使用的 Fedora 15 现在已经老旧它使用的 Linux 内核 2.6.38 版本与我使用的 Linux mint 21.2 的 5.15.0 版本已经相差太远其二进制可执行文件是不兼容的。
其实发行版中包含了 arm 的交叉编译器使用下面的命令可以直接安装
sudo apt install gcc-arm-linux-gnueabi 安装完成之后用 arm-linux-gnueabi-gcc -v 命令可输出如下所列内容的话说明交叉编译器已经安装完成了。
faundfaund-Virtual-Machine:~$ arm-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCCarm-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER/usr/lib/gcc-cross/arm-linux-gnueabi/11/lto-wrapper
Target: arm-linux-gnueabi
Configured with: ../src/configure -v --with-pkgversionUbuntu 11.3.0-1ubuntu1~22.04.1 --with-bugurlfile:///usr/share/doc/gcc-11/README.Bugs --enable-languagesc,ada,c,go,d,fortran,objc,obj-c,m2 --prefix/usr --with-gcc-major-version-only --program-suffix-11 --enable-shared --enable-linker-build-id --libexecdir/usr/lib --without-included-gettext --enable-threadsposix --libdir/usr/lib --enable-nls --with-sysroot/ --enable-clocalegnu --enable-libstdcxx-debug --enable-libstdcxx-timeyes --with-default-libstdcxx-abinew --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --with-system-zlib --enable-libphobos-checkingrelease --without-target-system-zlib --enable-multiarch --disable-sjlj-exceptions --with-specs%{mfloat-abihard:-marcharmv7-a -mcpugeneric-armv7-a -mfloat-abihard} --with-archarmv5t --with-floatsoft --disable-werror --enable-checkingrelease --buildx86_64-linux-gnu --hostx86_64-linux-gnu --targetarm-linux-gnueabi --program-prefixarm-linux-gnueabi- --includedir/usr/arm-linux-gnueabi/include --with-build-configbootstrap-lto-lean --enable-link-serialization2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04.1) 2. 进行交叉编译
所谓交叉编译就是在我们当前运行的 x86 架构电脑上的 Linux 中为 arm 芯片编译二进制目标代码这个目标代码包含了 arm 指令集的汇编代码。
按照官方DVD A的“/裸机程序/Linux平台下裸机程序开发指南”目录内《Linux平台下Tiny6410裸机程序开发指南.pdf》文件中第三节的说明对 1.led_s 例子进行交叉编译由于使用了不同版本的交叉编译器需要修改 Makefile 使用新的交叉编译器中对应的命令。修改后的 Makefile 文件如下
led.bin: start.oarm-linux-gnueabi-ld -Ttext 0x50000000 -o led.elf $^arm-linux-gnueabi-objcopy -O binary led.elf led.binarm-linux-gnueabi-objdump -D led.elf led_elf.dis
%.o : %.Sarm-linux-gnueabi-gcc -o $ $ -c%.o : %.carm-linux-gnueabi-gcc -o $ $ -c clean:rm *.o *.elf *.bin *.dis -rf然后运行 make 命令输出结果如下
faundfaund-Virtual-Machine:~/embeddedDev/bareDev/code/1.leds_s$ make
arm-linux-gnueabi-gcc -o start.o start.S -c
arm-linux-gnueabi-ld -Ttext 0x50000000 -o led.elf start.o
arm-linux-gnueabi-objcopy -O binary led.elf led.bin
arm-linux-gnueabi-objdump -D led.elf led_elf.dis很顺利的得到了我们需要的裸机程序 led.bin 3. 烧写裸机程序到开发板上
《Linux平台下Tiny6410裸机程序开发指南.pdf》文件中第三节中已经说明有 2 种方式将 bin 文件烧写到开发板上这里采用它推荐的直接下载到 DRAM 的方式。需要 2 个步骤: 1) 准备一个带有 USB 下载功能 Superboot 的 SD 卡2) 将 bin 文件下载到 DRAM 中并运行。
3.1 制作带有 USB 下载功能的 Superboot SD卡
根据 DVD A 上的文档 《03- Tiny6410刷机指南.pdf》中的说明先把 Superboot-6410.bin 文件用 SD-Flasher.exe 程序烧写到 SD 卡中所有程序和文件都在光盘中注意有的光盘镜像中 Superboot-6410.bin 文件是有问题的。 我在烧写完成之后遇到了问题从 SD 卡启动时只显示 “Booting from SD”等了10多分钟也没有后续输出后来发现是光盘上的 Superboot-6410.bin 文件是有问题的在友善之家的论坛中找到了一个文件重新烧写后才能正常进入 Superboot。 如果遇到和我一样的问题可以到下面这个链接去下载。 tiny6410从sd卡启动总是Booting from SD| Linux技术交流区 - 友善之家 嵌入式开发板技术交流社区[size2]如题按照步骤来的想从sd卡上按照bios ..http://www.aiothome.net/read.php?tid-86547.html 做完上面步骤之后参照《03- Tiny6410刷机指南.pdf》中 2.1.2 节说明将光盘中的 images/FriendlyARM.ini 文件拷贝到 SD 卡中的 images 目录下并且编辑 ini 文件添加 USB-Mode yes 项我在接下来使用的文件内容如下
#This line cannot be removed. by FriendlyARM(www.arm9.net)USB-Mode yes
LCD-Type H43CheckOneButtonNo
ActionNull
OS LinuxVerifyNandWriteNoStatusType Beeper| LED#################### Linux #####################
Linux-BootLoader Superboot-6410.bin
Linux-Kernel Linux/zImage
Linux-CommandLine root/dev/mtdblock2 rootfstypeyaffs2 init/linuxrc consolettySAC0,115200
Linux-RootFs-InstallImage Linux/rootfs_qtopia_qt4.img
Linux-RootFs-RunImage Linux/rootfs_qtopia_qt4.ext3################### Android ####################
Android-BootLoader Superboot-6410.bin
Android-Kernel Android/azImage
Android-CommandLine root/dev/mtdblock2 rootfstypeyaffs2 init/linuxrc consolettySAC0,115200 androidboot.consoles3c2410_serial0
Android-RootFs-InstallImage Android/rootfs_android.img
Android-RootFs-RunImage Android/rootfs_android.ext3################### WindowsCE6 #################
WindowsCE6-Bootloader Superboot-6410.bin
WindowsCE6-BootLogo WindowsCE6\bootlogo.bmp
WindowsCE6-InstallImage WindowsCE6\NK-i.bin
WindowsCE6-RunImage WindowsCE6\NK-i.bin#################### Ubuntu #####################
Ubuntu-BootLoader Superboot-6410.bin
Ubuntu-Kernel Ubuntu/uzImage
Ubuntu-CommandLine rootubi0:FriendlyARM-root ubi.mtd2 rootfstypeubifs init/linuxrc consolettySAC0,115200
Ubuntu-RootFs-InstallImage Ubuntu/rootfs_ubuntu-slc.ubi
Ubuntu-RootFs-RunImage Ubuntu/rootfs_ubuntu.ext3############### UserBin #################
UserBin-ImageWindowsCE/NK-i.nb0
userBin-StartAddress50100000弄好的 SD 卡插到开发板上启动模式开关拨到 SD-BOOT 位置。开发板和电脑的串口线、USB线都连接好然后开机Superboot 正常启动的情况下 LED1 会闪烁如果开发板有屏幕会有如下显示 串口控制台输出的内容如下 3.2 把 led.bin 写入开发板的 DRAM 并运行 由于“年久失修”官方 DVD 文档中提到的使用友善之臂提供的 MiniTools 应用进行烧写的办法似乎已经没办法用了。在windows下即使安装了 MiniTools 的驱动也会一直是“Board is not connected”状态无法使用Linux下因为需要 QT4 的支持而目前的发行版普遍支持 QT5 以上版本了我就没有照这个继续折腾了。还是回到官方的 DNW 软件来做本次体验所以后面的做法并没有按照官方 DVD 的文档进行。 在开发板正常引导了 superboot 之后因为已经用 USB 连接了电脑所以电脑上出现了一个新的设备但是在 windows 10 下这个设备的驱动程序并没有自动安装好 原因是老旧的驱动没有签名参考下面链接
关于win10装不上dnw驱动的问题_新版dnw驱动解决win不兼容_陆少ye的博客-CSDN博客
【dnw驱动数字签名】解决Win10安装USB驱动时INF不包含数字签名信息_aoxiang_ywj的博客-CSDN博客 先要按照下面步骤关闭 windows 10 的强制验证驱动签名 1. “开始”菜单 -“设置”-“更新和安全”-“恢复”里的“立即重启” 2. 电脑这时候会重启进入一个设置界面等待出现新界面 3. 新界面中选取“疑难解答”-“高级选项”-“启动设置”里点击“重启” 4. 机器重启后就有一些选项了第七个就是禁止验证驱动签名按下数字键“7”就可以了关闭驱动签名完成 电脑启动后到下面的地址下载 DNW 驱动程序
win7-64位-DNW-USB驱动-FriendlyArm tiny6410 已签名| Linux技术交流区 - 友善之家 嵌入式开发板技术交流社区[b][color#ff0000][size5][i] 折腾了几天终于把 ..http://www.aiothome.net/read.php?tid-80424.html更新之前带有感叹号的 SEC S3C6400X Test B/D 设备驱动 选取浏览我的电脑以查找驱动程序 找到刚才下载的 DNW 驱动程序inf 文件在 secbulk64.zip 包内的 secbulk64\inf64 目录中 选好了 secbulk.inf 文件之后会出现下面显示其中显示了 S3C2440 字样不用管它应该是通用的驱动或者是社区驱动作者的笔误直接点击下一步 在下面的安全警告窗口中点击“始终安装以驱动程序软件”因为已经关闭了强制验证驱动签名才有这个机会来安装没有签名的驱动程序不然会直接告知驱动程序安装失败 安装结束之后驱动程序就出现在下图这个位置 到下面这个链接下载 DNW 软件
DNW软件改进,添加了快捷按键,增强了界面显示等| 相关资料下载及使用技巧 - 友善之家 嵌入式开发板技术交流社区DNW软件改进,添加了快捷按键,增强了界面显示等http://www.aiothome.net/read.php?tid-3531.html运行这个 DNW 软件注意到已经有显示“USB:OK”说明已经与开发板 Superboot 正常连接了 在开发板的串口控制台中按 d 键即命令开发板 “Download and Run an Absolute User Application”下载并运行裸程序。 此时串口控制台显示正在等待 DNW 传输数据在 DNW 软件上按 F7然后选择之前交叉编译好的 led.bin 文件之后DNW会显示数据传输用时串口控制台会显示 “Download Done.” 等信息。 串口控制台显示“Run Absolute User Application...”现在开发板已经在运行我们的裸机程序了可以观察到开发板上 LED1 到 LED4 这 4 个 LED 灯一起在闪烁了效果可以看下面的视频 友善之臂运行裸程序示例 led.bin 4. 结论
友善之臂的 Tiny6410 开发板虽然已经老旧了官方很多支持也已经“年久失修”但是在目前还是可以正常进行嵌入式的开发体验的走通了裸机程序的各个环节之后可以先进行裸机程序的深入研究然后再慢慢可以去体验各种操作系统的嵌入式编程。