tag 标签: 编程

相关帖子
相关博文
  • 2022-7-22 16:10
    0 个评论
    本篇测评由电子工程世界的优秀测评者“bloong”提供。 此次测试的项目,是异构处理器间相互通讯项目。 MYD-JX8MPQ配备了一颗异构的Cortex-M7协处理器,可以同时运行Linux和RTOS。本文主要介绍协处理器M7使用方法。M7在运行时可能会涉及到和A53核共用资源,这里列举出会冲突资源如下: ECSPI0/ECSPI2,FLEXCAN,GPIO1/GPIO5,GPT1,I2C3,I2S3,UART4,PWM4,SDMA1/SDMA2,所以在一起使用时,需要将A53的这些资源关闭,这里就需要用到myd-jx8mp-rpmsg.dtb设备树。这里的M7使用uart4 作为串口。 下文介绍如何使用M7,以及编译M7程序的方法: M7使用方法 接两个串口:1个是开发板的Debug串口,另一个是M7的 UART4 串口。 1、Debug口为J4及TYPE-C Debug; 2、UART4口为J6,下图中红色箭头指示位置为pin1即UART4_TXD,据此pin2即UART4_RXD,pin3为GND。接这3根线就可以。 ​ 查看分区信息 启动开发板按任意键进入uboot模式,查看vfat分区中存在的文件。 fatls mmc 2 29209088 Image 8208 imx8mp_m7_TCM_hello_world.bin 19040 imx8mp_m7_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin 18528 imx8mp_m7_TCM_rpmsg_lite_str_ echo _rtos.bin 40948 imx8mp_m7_TCM_sai_low_power_audio.bin 62815 myd-jx8mp-atk- 10 .dtb 61702 myd-jx8mp-base.dtb 62815 myd-jx8mp-hontron- 7 .dtb 62846 myd-jx8mp -lt 8912.dtb 62555 myd-jx8mp-m190etn01- 19 .dtb 62619 myd-jx8mp-rpmsg.dtb 2113024 tee.bin 12 file(s), 0 dir(s) 设置M7设备树 kernel加载的设备树由fdt_file变量决定,这里设置成M7专用设备树。 printenv fdt_file fdt_file=myd-jx8mp-base.dtb setenv fdt_file myd-jx8mp-rpmsg.dtb save Saving Environment to MMC... Writing to MMC( 2 )... OK printenv fdt_file fdt_file=myd-jx8mp-rpmsg.dtb 设置M7启动参数 M7启动流程也是加载M7程序到内存,用bootaux命令启动, 正常kernel启动也一样,只是最后用bootm启动。 printenv fdt_file fdt_file=myd-jx8mp-base.dtb setenv fdt_file myd-jx8mp-rpmsg.dtb save Saving Environment to MMC... Writing to MMC( 2 )... OK printenv fdt_file fdt_file=myd-jx8mp-rpmsg.dtb setenv m7_image imx8mp_m7_TCM_rpmsg_lite_str_echo_rtos.bin setenv m7_boot_temp_addr 0x48000000 setenv m7_boot_addr 0x7E0000 setenv m7_run 'fatload mmc ${mmcdev}:${mmcpart} ${m7_boot_tem p_addr} ${m7_image};cp.b ${m7_boot_temp_addr} ${m7_boot_addr} 0x20000; bo otaux ${m7_boot_addr}' setenv m7_run 'fatload mmc ${mmcdev}:${mmcpart} ${m7_boot_tem p_addr} ${m7_image};cp.b ${m7_boot_temp_addr} ${m7_boot_addr} 0x20000; bootaux ${m7_boot_addr}' setenv mmcboot "run m7_run;${mmcboot}" save Saving Environment to MMC... Writing to MMC( 2 )... OK 测试M7程序 此时已经设置好了M7启动,只需要重启开发板,那么在A53启动kernel同时,也会启动M7中的程序。启动之后A53的串口执行如下2句,既可以看到M7中串口出现 对应的打印。 myd-jx8mp login: root root @myd - jx8mp: ~ # modprobe imx_rpmsg_tty root @myd - jx8mp: ~ # can1-stby: disabling can2- stby: disabling VSD_3V3 : disabling m2_keyb_pwr: disabling echo "hi m7!" /dev/tty RPMSG3 0 root @myd - jx8mp: ~ # cat /dev/ttyRPMSG30 hi m7! 想要了解优秀测评者“ bloong ”关于MYD-JX8MPQ开发板测评原文的可以复制下方链接查看: http://bbs.eeworld.com.cn/thread-1198858-1-1.html
  • 热度 1
    2022-7-1 16:54
    498 次阅读|
    0 个评论
    OK3568-C开发板是飞凌嵌入式新推出的嵌入式开发板,采用核心板+底板的分体式设计,基于 Rockchip RK3568 处理器设计,该处理器具有高性能、低功耗特点,功能丰富,可玩性极高。 OK3568-C开发板简介 OK3568-C开发板基于RK3568处理器设计,RK3568 采用先进的22nm制程工艺,四核64位 Cortex -A55架构,拥有 独立的NEON协处理器和神经网络处理器NPU,可应用于计算机、手机、个人移动互联网,数字多媒体设备。 OK3568-C开发平台核心板和底板采用接插件的连接方式,板载外设资源和接口很多。 详细的功能参数以及接口请到飞凌嵌入式官网参看OK3568-C开发板的产品简介: https://www.forlinx.com/product/147.html OK3568-C测试 下面对OK3568-C进行功能以及接口测试。 2.1 准备工作 在测试之前,需要准备以下材料: 1.12v2A DC电源线 2.网线 3. Type -C数据线 4.鼠标键盘 5.HDMI线(非必须) 值得注意的是,HDMI、 MIPI-DSI、LVDS显示方式默认都打开了,可根据自己手头的显示设备选择相应的显示方式,当然,不使用显示设备也可以的。 2.2登录系统 进入设备的方式有很多种,如果不使用屏幕,可以使用串口和SSH登录,但是SSH登录需要先连接网络。 2.2.1 QT界面测试 笔者这里使用的是HDMI的方式,连接设备后界面如 下: 以上就是所有应用,使用鼠标就可打开相应功能界面,主要有硬解码、Camera、OpenGL、音频、网络(以太网和WIFi)、UA RT 、 SPI 等功能,这些操作都很简单,具体方式请参看《OK3568-C_ Linux 用户使用手册》,笔者不再赘述了。 2.2.2串口登录 将Type-C 的调试串口接到PC,如果串口驱动没有问题,在设备管理器可看到串口号。 值得注意的是, 在使用串口登录前,先安装串口驱动,串口 芯片 是CP201x,笔者的电脑已经安装过了。 接下来就可使用终端工具登录系统,笔者这里使用的是Xshell,当然也可使用其他的工具,比如putty。 登录成功后打印信息如下: 串口设置: 波特率 115200、数据位 8、停止位 1、无校验位、无流控制。 2.2.3 SSH登录 在使用之前,需要事先连接网络,笔者这里使用的是以太网,事先需要使用串口的登录,然后输入以下 命令 查看IP地址: # ifconfig 也可修改网络 IP地址 ,使用以下命令: # ifconfig eth0 192.168.101.5 当然啦,如果已经将以太网配置成DHCP模式,那么在只要插上网线就会得到一个IP地址。修改/etc/network/inteRFaces文件即可,修改内容如下: 然后就可使用ifconfig查看IP。 接下来就可使用SSH登录系统了,还是可以使用Xshell等工具,当然也可在 ubuntu 系统中使用SSH登录。 值得注意的是,登录用户和密码默认都是root,如果忘记密码可以通过串口登录进系统,使用passwd修改。成功登录打印信息如下: 和使用串口登录一样。 2.3测试 2.3.1系统信息 1.硬件检测 # dmesg #检测硬件的boot启动信息,也就是系统启动的log信息。 2.查看内核和CPU信息 # uname -a #系统概述 # cat /proc/cpuinfo # CPU信息 3.查看内存信息 # cat /proc/meminfo #内存参数 # free -m # 内存使用情况(-m for MB) 4.设备信息 # cat /proc/devices # 显示设备以及对应的设备号 2.3.2 存储设备速度测试 1.DDR读写测试 OK3568-C的内存是使用镁光的D9WFH DDR4,读写速度测试命令如下: 读速度测试:# bw_mem 100M rd 写速度测试: # bw_mem 100M wr 读写速率分别为5257.07MB/s、1526.48MB/s。 读写速度还是可以的。 2.eMMC读写测试 OK3568-C使用闪迪的eMMC,读写速度测试命令如下: 读取测试: #time dd if=/test of=/dev/null bs=1M 写入测试: # time dd if=/dev/zero of=/test bs=1M count=500 conv=fsync 读写速率分别为1. 5G B/s、77.0MB/s。 3.TF卡测试 将 TF 卡插入开发板底板上的 TF 卡插槽,终端打印信息如下: 默认情况下 TF 卡挂载到文件系统 /run/media/目录 写入测试: # time dd if=/dev/zero of=/run/media/mmcblk1p1/test bs=1Mcount=500 conv=fsync 读取测试: # time dd if=/run/media/mmcblk1p1/test of=/dev/null bs=1M 读写速率分别为1.5GB/s、19.6MB/s,当然啦,不同品牌的TF卡速度会有差异。值得注意的是,先要进行写测试再进行读测试。 4.USB 2.0/USB3.0 OK3568支持两个USB2.0和一个USB3.0接口,用户可以在任何一个板载USB HOST接口上连接USB鼠标、 USB键盘、 U盘等设备。 下面先测试USB2.0的接口,插入U盘,打印信息如下: 首先查看U盘设备: # ls -l /run/media/ 写入测试: # time dd if=/dev/zero of=/run/media/sda/test bs=1Mcount=500 conv=fsync 读取测试: # time dd if=/run/media/sda/test of=/dev/null bs=1M 当然,不同种类的U盘也会影响读写速度。 下面测试USB3.0的接口,USB3.0和OTG复用,通过拨码开关切换使用,使用USB3.0接口时请确认拨码开关在ON位置,插入U盘后,打印信息如下: 首先查看U盘设备: # ls -l /run/media/ 写入测试: # time dd if=/dev/zero of=/run/media/sda/test bs=1Mcount=500 conv=fsync 读取测试: # time dd if=/run/media/sda/test of=/dev/null bs=1M 从上面的测试结果来看,USB3.0还是要比USB2.0快很多的。 2.3.3网络测试 OK3568-C开发板配备2个 千兆网 口,还有一个WiFi,网速测试方法都是一样的,笔者这是测试的千兆网口(ETH0)。 这里使用系统自带的Iperf工具测试TCP带宽。Iperf 是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽和UDP特性。 TCP测试: 服务器执行:#iperf -s -i 1 -w1M 客户端执行:#iperf -c host -i1 -w 1M 其中-w表示TCP window size,host需替换成服务器地址。 UDP测试 服务器执行:#iperf -u -s 客户端执行:#iperf -u -c10.32.0.254 -b 900M -i 1 -w 1M -t 60 下面以TCP为例进行测试,这里测试的是ETH0。先打开服务器:# iperf -s -i 1 -w 1M 然后使用SSH登录,新建一个终端,再次打开一个终端:# iperf -c 192.168.101.5 -i 1 速度还是可以的。 2.3.4串行总线测试 1.串口测试 OK3568平台支持多路串口,用户可用串口分别为UAR T3 和UART4、UART5,在开发板中对应设备名称分别为ttyS3、ttyS4、ttyS5。 在开始测试前可将串口的RT和TX短接,这里以UART3为例,也就是短接RX3和TX3。 # fltest_uarttest -d /dev/ttyS3 以上表明通信正常。 2.SPI测试 OK3568 底板上引出 2 路 SPI 接口,默认软件上将其配置为 spidev 用于回环测试。测试前需短接MOSI和MISO。这里以SPI2为例。 # fltest_spidev_test -D /dev/spidev2.0 以上表明通信正常。 2.3.5 WEB测试 OK3568开发板预装了lighttpdweb服务器,并且系统启动时已经自动启动了lighttpd服务,在浏览器中输入开发板的IP 地址即可浏览开发板webserver 中的网页。 界面和使用HDMI是一样的,操作也差不多,这里就不再赘述了。 想要了解更多功能及测试,请联系您的销售工程师或留言获取《OK3568-C_Linux用户使用手册》。 http://https://www.forlinx.com/product/146.html
  • 热度 2
    2022-6-29 14:57
    97 次阅读|
    0 个评论
    本文硬件平台以凌OK1028A-C 开发板 为基础进行示例,其他厂商开发平台,因各个厂家设置不同,可供参考使用。内容包含 LS1028A开发板 设置默认CPU调频策略, LA1028A 开发板环境变量配置文件uEnv.txt使用方法, LS1028A 开发板开机自启动程序, LS1028 A开发板LVDS配置说明,LS1028A开发板旋转屏幕说明,LS1028A开发板Qtcreator安装使用说明 一、LS1028A开发板设置默认CPU调频策略 默认情况下OK1028A-C启动后CPU调频策略为ondemand root@forlinx:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ondemand 如果想使用其它策略,以高性能模式为例,可以进行如下设置 root@forlinx:/# systemctl disable ondemand.service root@forlinx:/# apt-get install cpufrequtils 修改 root@forlinx:/# vi /etc/default/cpufrequtils 添加 GOVERNOR="performance" 重启测试 root@forlinx:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor performance 注意:这里以操作cpu0为例,实际过程cpu1、cpu2、cpu3会同时改变。 二、LA1028A开发板环境变量配置文件uEnv.txt使用方法 OK1028A-C平台支持启动过程中通过文件导入部分环境变量,例如可以将默认的网卡MAC地址写在uEnv.txt文件中设置固定的网卡MAC地址。 启动时系统会读取eMMC第二个分区boot目录中的内核以及设备树文件,如果存在uEnv.txt则将其中的环境变量导入到系统中。以修改网卡MAC为例进行测试。 创建uEnv.txt文件 root@forlinx:~# vi /boot/uEnv.txt 添加如上环境变量,重启系统。 启动过程中可以看到log信息Importing environment from uEnv.txt ... 可以看出,我们添加的环境变量已经生效。在批量生产时,您可以将uEnv.txt放入烧写U盘的boot目录,烧写时将自动将uEnv.txt烧入eMMC中。 三、LS1028A开发板开机Logo制作方法 OK1028A-C平台支持开机Logo,支持8bit索引bmp图片。下面简单介绍使用photopshop制作开机logo的步骤。 首先使用photoshop打开一张普通的图片 点击“图像”-》“模式”,将RGB颜色修改为索引颜色 在弹出的“索引颜色”对话框中直接点击确定。 完成后在文件菜单中选择存储为,保存为logo.bmp即可。 烧写时,将logo.bmp放入烧写TF卡的boot目录即可。 四、LS1028A开发板Qtcreator安装使用说明 OK1028-C平台目前没有qt的交叉编译环境,如果需要进行qt应用程序的开发,建议直接在开发板上安装qtcreator。下面简单介绍qtcreator在OK1028-C平台上的安装及使用。 root@forlinx:/#apt-get install qtcreator root@forlinx:/#qtcreator 点击“New Project”创建新工程: 点击“Qt Widgets Application”: 输入项目名称,以“hello”为例: 点击“Next”: 点击“Next”: 点击“Finish”: 点击左下角的运行按钮: 将自动编译并运行。 注意:为了节约磁盘空间, 飞凌 提供的文件系统中只提供了qtbase qtwayland等部分必要核心模块,如需其他模块,可以使用apt-get进行安装。 五、LS1028A开发板LVDS配置说明 OK1028A-C底板上默认焊接了DP转LVDS 芯片 ,如果您需要适配自己的LVDS屏幕,可以参考如下步骤进行适配。 1.修改时序参数 时序参数需要修改:drivers/gpu/drm/bridge/cadence/cdns-dp-core.c 参数值的含义,可以参考DRM_MODE的 宏定义 : 2.修改DP 时钟 LS1028A DP时钟计算方法如下: DP像素时钟=fpll_phi=fpll_VCO/PLLDV fpll_VCO需要在设备数中指定,系统启动后无法修改,位于600M-1300M之间。 PLLDV 的范围为1-64,只需要保证VCO可以整除lvds的像素时钟,且位于1-64之间即可。 例如飞凌默认的屏幕时钟为71100khz,这里指定的vco-frequency=1066500000,PLLDV =15 更详细的说明可以参考:LSDKUG_rev20.04.pdf 459页,及内核驱动:drivers/clk/clk-plldig.c 3.修改启动参数 configs/board/ls1028ardb/manifest 修改完成后使用如下 命令 重新编译: flex-builder -i mkdistroscr 六、LS1028A开发板旋转屏幕说明 weston支持0、90、180、270度屏幕旋转功能,可修改配置文件/etc/xdg/weston/weston.ini进行设置,例如旋转90度,可将transform选项设置为90。 name=DP-1 mode=1280x800@60 force-on=true transform=90 七、LS1028A开发板开机自启动程序 在此介绍一种使用systemd方式来配置任意开机自启动程序的方法。 执行如下命令创建一个脚本文件,并修改权限: /helloworld.sh /helloworld.sh root@forlinx:/# chmod 777 /helloworld.sh 进入到“/lib/systemd/system/”目录下,并新建一个helloworld.service文件,命令如下: root@forlinx:/# cd /lib/systemd/system root@forlinx:/# vi helloworld.service 文件的内容如下: Description=helloworld After=basic.service X.service thermal-zone-init.service ExecStart=/helloworld.sh WantedBy=multi-user.target 其中Description一行需写入服务名,ExecStart需要写入可执行文件的绝对路径。 保存退出后,在终端上执行如下命令: root@forlinx:/# systemctl -f enable /lib/systemd/system/helloworld.service 此时即可将新添加的自启动服务生效,重启开发板后,此程序即可自动运行,在默认端的音频即可听到音频输出。http://https://www.forlinx.com/
  • 2022-6-16 14:25
    237 次阅读|
    0 个评论
    本文基于飞凌嵌入式 iMX6Q 开发板为基础进行讲解,旨在为用户提供一个简单用于EIM可用性及稳定性测试的思路,由于小编水平有限,请参考使用。 一、测试 方案 本测试思路基于NXP提供的NorFlash使用EIM接口异步通讯而来,感兴趣的朋友可自行前往NXP官网下载查阅。 1、硬件原理 EIM连接了一个32MB的 Parallel NOR Flash,只需将数据总线,地址总线连接正确,操作比较简单,下图为硬件原理图。 2、软件修改 在设备树添加Norflash设备节点,并对使用的 引脚 的pinmux进行修改(下面列举的修改方法未包含已使用了EIM引脚的驱动的修改部分,有引脚冲突自行修改) 2-1、添加Norflash设备节点 飞凌的 iMX6开发板 提供的 Linux 4.1.15自带EIM驱动,EIM驱动加载以后,将读取每个子节点,如地址空间分配,cs如何配置时序等。EIM节点添加上Norflash节点,用的cfi-flash 通用驱动,修改地址空间的起始地址,最主要的是配置时序,下面设备树修改中包含了该时序,直接使用即可。 2-2引脚的Pinmux修改 添加好节点后,需要对使用的引脚进行Pinmux的配置,配置成功后,直接运行,即可生成Norflash节点。 Pinmux的配置办法可参考飞凌嵌入式提供的 iMX6 引脚 Pinmux配置说明,本篇就不做赘述。 参考链接:https://www.forlinx.com/article_view_291.html 二、测试方法 测试使用mtd_debug工具进行测试 测试步骤:准备一个文件,通过ls –l 命令 查看该文件的大小。然后在NorFlash上擦除一块可以存储下该文件的空间(大小是128K的整数倍),然后将该文件写入到NorFlash内,然后再将该文件从NorFlash内读出,将2个文件做md5码校验,md5码一致表示测试通过 1、查看文件的大小,擦除一块足够大空间 2、将文件写入到NorFlash 3、读取存储的文件 4、比对md5校验码 结论:在EIM接口上添加了NorFlash,驱动能正确识别设备,将文件写入NorFlash后,再将文件读出,文件未损坏,说明EIM接口工作正常 三、稳定性测试 通过随机数生成一个文件,将这个文件写入NorFlash,然后不停的读取这个文件,文件每次读取完成后,与原始文件做MD5对比,MD5值不一值则报错提示。 https://www.forlinx.com/product/30.html
  • 热度 6
    2021-2-26 15:23
    1642 次阅读|
    4 个评论
    winform实战项目-动手写一个“计算器”
    实战项目 --动手写一个“计算器” 实战项目旨在交流学习, 欢迎在评论区交流意见。 简介:分享一个简单的软件项目 ---自己动手写一个“计算器”。 先展示效果: 项目开发环境: Visual Studio 2017 winform 开发 开发语言: C# demo功能: Windows 窗体程序实现计算器功能 PS:其他版本的 VS 开发步骤基本一样 首先,打开 Visual Sdudio,新建一个 winform 工程 左上角:文件 -新建 - 项目 选择 Visual C#的 Windows 窗体应用( .NET Framework ),名称位置自己设定即可 然后点击确定 接着弹出的窗体设计界面就可以用来进行程序界面设计了: 在左侧工具箱中,拖出需要的按钮,改变其大小和显示标签,如下图所示: 这里设定了 0~9的数字按键,加减乘除的基本运算按键还有“ = ”号和清除键“ C ”,这里按照个人实际需求设计即可,此例只是示范。 然后拖入一个 TextBox控件 , 调整大小和整体布局,使得界面看起开相对规范: PS: TextBox 的属性栏里面,应当将字体改大,以便显示,显示顺序应改为 RightToLeft 功能布局颜色等按照自己的需求做一下调整,界面就搞定了 下面代码实现功能: 表示最终结果,中间结果的值的变量在开头先定义清楚,然后后面在每个按键的触发事件中填入内容即可。 感觉挺简单的算法,自己写的时候还是费了些脑经,多次修改测试后,圆满实现效果。 至此项目介绍完毕,项目中的数学计算还是挺有意思的,本项目旨在开源,想要获取源码资料的朋友,关注公众号大鸟科创空间后,回复项目关键字 “计算器”,即可获得源码资料下载链接。
相关资源