NanoPi R1 --- FriendlyWrt的使用教程
FriendlyWrt 介绍 FriendlyWrt 基于 OpenWrt 改造而来,它是适合于嵌入式设备的一个 Linux 发行版,它不是一个单一、静态的固件,而是提供了一个可添加软件包的可写的文件系统。 这使用户可以自由的选择应用程序和配置,而不必受设备提供商的限制,并且可以使用一些适合某方面应用的软件包来定制你的设备。 对于开发者来说,OpenWrt 是一个框架,开发者不必麻烦地构建整个固件就能得到想要的应用程序;对于用户来说,这意味着完全定制的能力,与以往不同的方式使用设备,OPKG 包含超过3500个软件。 更详细的介绍请参考OpenWrt官网 登录系统 串口登录 如果您需要进行内核开发,最好选购一个串口配件,连接了串口,则可以通过串口终端对开发板进行操作。使用串口模块能有效地提升开发效率,以下是串口模块的连接方法:接上串口后,请注意串口模块的DC口和NanoPi-R1的MicroUSB口都需要供电: 也可以使用USB转串口模块调试,请注意需要使用5V/2A电源给开发板MicroUSB供电: 默认会以 root 用户自动登录,并且没有设置root用户的密码,你可以使用 passwd 命令来设置 root 用户的密码。第一次运行系统时,系统会自动拓展TF卡上文件系统分区到最大可用空间:请耐心等待文件系统扩展完成。SSH登录(本文重点讲述以下登陆方式) 在本开发板的FriendlyWrt系统里,有线网络(eth0) 被配置为WAN功能。启动系统前,请先用网线连接板子的有线以太网口到一级路由器的WAN口,以便该以太网(eth0) 能通过DHCP获取到IP地址。这里假设已经通过调试串口或者一级路由器确定板子的以太网(eth0) 的IP地址为192.168.0.173,通过SSH登录系统,无需密码,直接就可以登录。A, 关于在哪里输入命令,这样的小白问题,可以百度一下,附件里也有对应的工具提供下载:SecureCRT 终端软件 B, 如何获取IP地址,是本文重点介绍的内容,很多用户拿到NanoPi R1设备后,不知道如何来获取IP地址,这里,我们讲述一种简单的方法来获取 设备的IP地址,以便后来的操作: 1,需要准备的工具 IP 扫描工具, 后面附件可以下载。 2,打开IP 扫描工具,开始扫描,如下图: 3,NanoPi R1默认设备的MAC地址一般都是以 02.81.开始的,(R1S 默认设备的MAC地址以80.1F开始)这个特征我们可以用到,根据我们设备MAC地址特征,找出所对应的IP 就是我们设备通过DHCP自动获取到的 IP。在这里,我的NanoPi R1 的IP地址为:192.168.0.173. 备注:即使不使用MAC这个特征,我们也可以通过连接设备网口,扫描一次,查看有多少主机信息。然后,再断开我们的设备网口, 重新扫描一次,对比两次扫描结果,同样可以找出,我们设备的IP地址。 4,得到IP地址后,再通过上面的SSH 命令来登陆设备. 登陆方法:1,打开SecureCRT 工具,文件 - 快速连接,如下设置: 协议选择 SSH1或SSH2,主机名输入我们设备IP:这里是:192.168.0.173其他默认,选择连接。2,输入SSH 用户名,root 3,登陆成功后,界面如下:Web登录 FriendlyWrt系统支持通过LuCI Web界面进行访问和配置。在已完成 <SSH登录> 章节里的设置的基础上,假设板子的有线以太网的IP地址为192.168.0.173,在浏览器中输入该IP地址就可以登录LuCI界面了:默认用户名为root,无需密码,直接点击"Login"按键即可登录。登陆成功后就可以进行相关设置了,成功界面如下:更多配置内容,请查看WIKI 手册:http://wiki.friendlyarm.com/wiki/index.php/NanoPi_R1/zh
3   2019-09-19
IDA编译STM32 Hex\Bin文件成C代码
IDA是一款功能强大的fan编译软件,网上找了许久没找到它的使用教程,经过摸索可将STM32的hex文件进行fan汇编,操作步骤如下,首先下载IDA Pro软件,免安装。 IDA Pro下载链接:https://pan.baidu.com/s/15mlNh73Ga9zj9y3JN4kfaw 提取码:kkxi 如果文件为bin文件,可使用bin转hex工具转为hex格式,BinToHex下载链接:https://pan.baidu.com/s/1X-ZPE1zaehf8tTEdMJtlrw 提取码:3djj 1、打开解压后目录下的idaq.exe可执行文件,点击[File]-[Open]看到如下界面, 2、打开hex文件弹出提示 3、【processot type】选择小端ARM,点击【set】保存 4、按顺序点击图片中的1-2-3,设置好后点击所以【ok】关闭提示框 5、接下来将看到hex的文件内容,在CODE32下按d合并行6、右击第二行跳到程序起始处 7、在跳转到的程序前面按c键 8、反汇编完成,在CODE32处按F5键将生成类C伪代码,见第12步 9、右击函数头选择【Graph view】可查看函数间调用关系 10、查看函数调用关系 11、在子函数中按【F5】键,生成反编译代码 12、反编译后的CODE32函数,该函数前面是stm32中启动文件中的一些时钟初始化函数,main函数的入口在最后sub_8003076();中,双击该函数即可进入。 13、进入main函数中将看到如下一些具体功能实现代码,注意寄存器的配置都是对芯片的某个内存地址进行操作,变量也是对应某一个存储器地址。
20   2023-05-28
Debian 开机启动 运行命令或脚本文件
开机启动:1、跳转到对应位置(/etc/init.d/)cd /etc/init.d/12、创建sh脚本(文本名.sh)(如果不存在会自动创建)vim /etc/init.d/test.sh13、在sh文件中输入一下内容例1:   #!/bin/sh               cd /home/pi/test.bin/     nohup bash run.sh &        exit 0例2:用vim打开需要修改的脚本,其中/etc/init.d/是存放路径  vim /etc/init.d/startmountusb.sh1    #!/bin/sh              sleep 3    systemctl stop docker    sleep 3    echo host > /sys/kernel/debug/usb/ci_hdrc.0/role    sleep 3    mount /dev/sda1 /var/lib/docker    sleep 5    systemctl start docker      exit 0建议:分步且可能有延迟的操作,建议加上等待时间。启动文件模板解释:#!/bin/shvim操作:1)逗号是指先后操作2)【】包含的是键盘按键[]包含的是输入的英文内容①【esc】:返回,输入命令,退出编辑模式②【i】:编辑③【shift】+【ins】:粘贴(可能有别,具体以你用的ssh为准)④【esc】,[:wq] :保存并退出,注意wq前面的冒号是英文版,且需要输入。⑤【esc】,[:q]:退出,如果有改动,就不能用这个⑥【esc】,[:q!]:退出且不保存,注意是不保存!不保存!不保存!结构是冒号+q+叹号,英文版4、将刚才编辑好的sh文件加上可执行的属性(如果不加属性,启动脚本将无法运行):chmod +x leanote.sh结构为:  chmod+空格+[+x]+空格+脚本.sh125、然后,将这个启动脚本加入开机启动项中:update-rc.d leanote.sh defaults结构为:update-rc.d+空格+脚本.sh+空格+defaults126、然后重新启动系统,reboot
28   2023-05-11
RK3399调试串口改为普通串口步骤
1.问题 我们产品平台为RK3399,工程样机买的核心板,但是核心板只预留了UART0和UART4,还有1个android的调试口,但是我们业务上需要3个业务口,所以需要将rk3399默认的调试口(UART2)改为普通串口2.修改步骤(1)配置内核文件Device Drivers > [*] Staging drivers  ---> Android  ---> [ ] FIQ Mode Serial Debugger配置完成之后如下图:(2)修改文件kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi(3)修改启动参数文件parameter.txtCMDLINE参数去掉androidboot.baseband=N/A,添加console=NULL,不加这一句启动时会卡住,比原来启动时间延时一分钟多androidboot.console=ttyFIQ0 改为androidboot.console=NULL如下图:(4)修改设备文件权限修改文件device/rockchip/common/ueventd.rockchip.rc在/dev/ttyS4                0666   system     system下面增加一行/dev/ttyS2                0666   system     system(5)如果调试串口直接作为普通串口使用,最好把uboot也改了,因为在uboot启动过程中串口如果有数据过来的话,会进入命令行,系统就起不来了。这里就不写修改方法了,rk3399原来用的uart2c,我现在使用了uart2b,就绕过了这个问题。(6)编译 3.遗留问题(1)绕过了UART2C,使用了UART2B做为普通串口,这里还是想用UART2C做为普通串口(2)RK3399从UART0~4一共有五个串口,除去默认调试口UART2,还有4个,但是核心板中UART1和UART3和以太网功能复用了,以太网是个很常用的功能,所以这里的IO冲突我怀疑有别的解决办法,如果后期还需要UART资源,再来研究
31   2023-05-06
粤ICP备18089419号