Banana Pi BPI-M6(Raspberry Pi 5 替代品)初始设置及固件烧录

Banana Pi BPI-M6:初始设置和镜像烧录

Banana Pi BPI-M6 的首次测试

在上一篇文章中,我比较了Banana Pi BPI-M6和Raspberry Pi 5的硬件特性。两者都拥有出色的硬件技术,在性能方面应该不会有太大的问题。
今天我想测试一下 Banana Pi。作为第一个测试,我只需通过 HDMI 输出 (TX) 将 Banana Pi BPI-M6 连接到我的显示器,并使用 USB 充电器为 Banana Pi 供电,我曾经测量过它可以在 5 伏电压下处理 3.1 安培的电流。那应该足够了。Banana Pi BPI-M6 的两个 HDMI 端口被设计为微型版本,并且位置靠近。如果没有细长电缆 HDMI 微型到普通适配器或 HDMI 微型到普通电缆,我将无法同时连接两个 HDMI 端口。电缆上带有窄插头的微型 HDMI 适配器已经订购,但还需要一段时间才能通过全球速卖通从中国抵达。如果你赶时间,你可以买一个像树莓派 HDMI 适配器一样的适配器,每个大约 6 到 8 欧元,大约是德国商店价格的两到三倍。我目前只有一个“短”HDMI 微型适配器(无电缆)和一条普通 HDMI 电缆。幸运的是,适配器足够窄,因此我可以插入 USB-C 插头来供电,而不会出现任何干扰。如果没有合适的适配器,您无法同时连接 HDMI 输入和 HDMI 输出,因此最好在购买时订购。并且请不要强行插入太宽的插头,因为在 BPI-M6 的主板上更换这样的微型 HDMI 端口并不有趣。当我给 Banana Pi BPI-M6 供电时,我的显示器或HDMI 5 到 1 开关会自动从源 1 (PC) 切换到源 2 (BPI-M6),但屏幕保持黑色,并且只显示“无信号”消息。但一开始没有理由担心。除非插入可启动 SD 卡,否则 Raspberry Pi 不会显示任何内容。但我心想,也许会有一个徽标,或者会加载标准软件,毕竟 Banana Pi BPI-M6 板上有 16 GB eMMC 内存。某些东西可能已经保存在交付状态中。

Banana Pi BPI-M6 的初始设置


因此,我将 Banana Pi 插入 Windows PC 上的 USB 插座。
还检测到“VS680 S/N...”设备,但毫不奇怪,Windows 找不到它的驱动程序。
我的M6板的序列号“12345678A”也很有趣。这可能是因为我对 Banana Pi 进行了早期修订,每个人仍然有一个虚拟编号,也许这会改变。根据Banana Pi 主页上的入门说明,
我们首先必须下载SenarySocSystemTool ,也称为“USB 刻录工具”,启动它并使用它来将映像“刻录”到 eMMC 上,然后才能进行任何操作。如果没有图像,由于缺乏固件,屏幕会保持黑屏,就像µSD 卡上没有图像的 Raspberry Pi 一样。该 zip 文件只是一个设置,最初无法在我的 Windows 7 下运行。它可能是为 Windows 10 设计的,或者是因为我的 Windows 对所有 SDK 都有点特殊。但是,当我在安装属性中设置 Windows 7 的兼容性设置后,它就可以工作并且可以安装在选定的文件夹中。在安装过程中,诸如“ffmpeg.exe”之类的文件名以及一些带有汉字的文件名一闪而过。看看它是否有效将会令人兴奋......在结束前不久还有另一个惊喜:不幸的是,我不会说中文。但有谷歌镜头,例如。它的互联网版本只会在图像中创建模糊、难以阅读的文本,但你可以在智能手机上使用它。现在我看得更清楚了:我当然要安装USB驱动程序,所以复选标记保持选中状态。您还不必亲自运行该工具。所以我们可以保留默认设置,然后单击“完成”。不幸的是,立即弹出一条错误消息:如果您仍然使用 Windows 7,我认为您已经做了一些愚蠢的事情。我使用 Windows 10 可能不会遇到这些问题。


接下来,我尝试了为带有 RetroPi 的 Raspberry Pi 以及桌面 Raspbian 制作的微型 SD 卡,但不幸的是,这里的屏幕也仍然是黑色的。除了 Banana Pi BPI-M6 使用大约 400 mA 的电流并且红色 LED 亮起之外,没有任何反应。不幸的是事情没那么简单。Banana Pi 支持也向我证实,Banana Pi 与 Raspberry Pi 映像不兼容,因此您不能简单地从它们启动。

Windows 7下手动安装驱动程序

然而,在安装程序安装该工具的目录中,我发现了一个“DPInst64.exe”,它看起来与上面描述的“USB启动USB驱动程序”非常相似:

 Verzeichnis von D:\Program Files (x86)\SenarySocSystemTool\Syna_WinUSB_Driver

02.11.2023  07:51    <DIR>          .
02.11.2023  07:51    <DIR>          ..
20.11.2018  04:57             6.148 .DS_Store
02.11.2023  07:51    <DIR>          amd64
07.05.2010  20:52           930.272 DPInst64.exe
02.11.2023  07:51    <DIR>          ia64
25.11.2022  11:19            18.479 Syna_WinUSB.cat
25.11.2022  11:19            14.957 Syna_WinUSB.inf
02.11.2023  07:51    <DIR>          x86

让我们手动运行 DPInst64.exe。当然,你必须同意红色驱动安装警告。然后,响起熟悉的“USB 设备已插入”提示音,并且出现成功消息:

名为“APSE_WinUSB_Release (WinUSB) USB (07/20/2012 3.3.2.3)”的驱动程序已安装。当我将 M6 置于启动模式时,相应的设备也显示在设备管理器中,没有错误(稍后会详细介绍): 在

它旁边的目录中,我找到另一个“DPInst64.exe”,它看起来可疑地像上面那个名为“Android USB Driver”的驱动程序:

 Verzeichnis von D:\Program Files (x86)\SenarySocSystemTool\UsbDriver

02.11.2023  07:51    <DIR>          .
02.11.2023  07:51    <DIR>          ..
02.11.2023  07:51    <DIR>          amd64
05.09.2022  09:42            11.151 androidwinusb86.cat
05.09.2022  09:42            11.187 androidwinusba64.cat
12.02.2018  17:05             5.917 android_winusb.inf
07.05.2010  20:52           930.272 DPInst64.exe
02.11.2023  07:51    <DIR>          i386
05.09.2022  09:42            17.391 package.xml
05.09.2022  09:42                64 source.properties

如果您直接调用它并安装名为“Google, Inc. (WinUSB) AndroidUsbDeviceClass (08/28/2014 11.0.00000 00000)”的设备,则此 DPInst64.exe 在 Windows 7 下运行得很好:

运行 SenarySocSystemTool

我还可以在我的硬盘上找到该工具本身,名称为“SenarySocSystemTool.exe”。还有“SOC烧写工具使用说明.docx”,可能是该工具的Microsoft Word格式的说明,但一切都是迷人的中文。我把文件机器翻译成德语。您可以在此处下载 SenarySocSystemTool-Anleitung-deutsch.zip。感谢 Banana Pi 组织允许这样做。
该工具本身也有中文版本,这并不奇怪。当我询问时,我发现这只是一个早期版本,该程序的英文版本正在开发中,应该会在 Banana Pi BPI-M6 广泛上市时提供。我将各个按钮翻译成德语,并将翻译写在它们旁边。有了这个以及将图像写入 Banana Pi BPI-M6 的 16 GB eMMC 的工具的背景知识,您绝对可以使用该工具。eMMC 镜像与 Raspberry Pi µSD 卡上的镜像基本相同,只是 Raspi 没有 eMMC,必须始终从 µSD 卡启动。SD和eMMC都基于闪存技术,eMMC通常比SD更快,但不如SSD。我们想要使用该工具将映像写入 Banana Pi BPI-M6 的 eMMC。当然,要做到这一点,我们首先要选择一个合适的图像(点击“浏览”并选择一个图像。目前,根据Wiki(图像发布部分),只有Android图像,您可以从 Google Drive 下载。我认为很明显,稍后会有更多图像。可能值得时不时地看看 Wiki 页面。事实上,已经有一个“Linux”部分仍然填充意味着可能很快就会出现一个 Linux 镜像的链接。然后我向 Banana Pi 组织询问,确认他们正在开发一个 Linux 镜像,并且很快就会发布一个镜像。然后我们最后点击右下角的“Burn Image”,点击将镜像写入到Banana Pi BPI-M6。因为中间底部的中文向我们解释说设备无法被识别。怎么可能呢? ? 驱动安装成功。快速帮助,或者他们的翻译可以帮助我们:

1.进入UBOOT模式:方法1-按下USBBOOT按钮>按下RESET按钮->松开RESET按钮->松开USBBOOT按钮。方法 2 – 按 USBBOOT 按钮?板子上电 -> 松开 USBBOOT 按钮
2. 退出 UBOOT 模式: 方法一 - 按下 RESET 按钮 -> 松开 RESET 按钮;方法 2 – 重新给卡上电。3、烧写MDK Recovery时,先选择UBoot,然后进入UBOOT模式,否则无法启动烧写模式。
4. 首次使用时识别USB端口:连接设备并将其置于UBOOT模式。工具显示设备后,记下绑定 ID。
5. 每轮编程结束后,结果显示在右表中。成功的设备显示为黑色,失败的设备显示为红色。
6. 插入所有需要更新的器件,进入UBOOT 模式,然后开始烧写
7. 请再次进入UBOOT 模式。必须在【开始编程】之前完成器件的编程,否则无法开始器件的编程。

啊哈!所以我们还必须自己将 Banana Pi BPI-M6 置于编程模式。一项安全措施,可防止您意外覆盖 eMMC。为此,只需按住“USB”按钮,然后将 USB 电缆插入 PC(从而为其供电),或者如果电缆已插入且 Pi 已通电,则按住“USB”按钮按钮,然后短按重置按钮(“RST”),然后再次松开 USB 按钮。
这两个按钮均位于 Pi 板带有 40 针 GPIO 接头的一侧。右上方的USB位于USB-C插座和HDMI-Out插座之间,复位按钮位于右侧斜下方;位于 USB-C 插座下方和白色 LCD 端口左侧。按钮真的很小,你必须小心,不要用指甲滑倒。
不幸的是,这似乎不适合我。即使将其置于 USB 启动模式并重新启动该工具后,它仍然显示“设备无法识别”(中文)。

根本原因研究和调试

可能是因为我还在使用Windows 7。虽然它应该可以工作:驱动程序“Synaptics IoT:用于 VS680 启动设备的工具包 USB 驱动程序”已安装,显示在设备管理器中,并在属性下显示“设备工作正常”。
现在我有点不知所措,因为到目前为止我只能从 Banana Pi BPI-M6 获得黑色 HDMI 图像,或者换句话说什么也没有。我的全新BPI-M6不会有缺陷吗? 在 BPI-M6 板上,我在最外面的 USB 插座附近发现了一个标有“G RX TX”的三针接头。这可以代表“接地、接收、传输”,从而代表串行接口吗?ESP32 的行为是通过串行端口输出有用的调试信息,即使是TTGO ESP32 VGA32 板或ESP32-Cam Baord等成品模块也是如此。 起初我对没有 VCC 或 3V3 电源端口感到有点恼火,但仔细想了一下,我认为我只是习惯了我的串行适配器,实际上没有必要。 基本上,一条用于打开和关闭接地电压 (G) 的线路 (TX) 足以传输必要的位模式。 尽管如此,为了安全起见,我还是宁愿将板连接到我的示波器。按下重置按钮后,开发板应该会愉快地在 TX 上进行传输。我预计至少会出现一条简短的开机消息。 但什么也没有。重置期间,Oszi 仅显示短暂的低-高,然后长时间沉默或什么都没有留下。与我使用 USB 按钮进入启动模式时的行为完全相同。 出于好奇,我还按下了SPI按钮。嘿:示波图中发生了一些事情。这里发生了一些事情,看起来像是一个信号。 由于电压在可容忍的范围内,我将 BPI-M6 板的 TX 和 G 连接到FTDI 适配器的 RX 和 GND ,在我的 PC 上打开一个设置为“115200 bps,8N1”的终端窗口,然后按我按住 SPI 按钮,然后再次短按重置。 确实:我得到了可读的输出:

所以我的设备似乎并没有完全有缺陷。我读到的信息表明 BPI-M6 正在尝试从 SD 卡启动。但这失败了,因为 SD 是空的。如果使用 eMMC 刷新不起作用,以某种方式为 µSD 卡配备映像,然后从它启动,也许会有所帮助。

...
  
ULT (byte[0:7])     = 43111a826e719115
Chip version        = 0x01
Leakage ID = 1705
 i2c status:0x00000750, send_num:1 (expect:1), recv_num:0 (expect:1)
 tx abort source:0x801000
  bit12:lost arbitration
MMC is SD
emmc_wait_card_detect: No card present

如果没有 µSD 卡,主板仍然认为内存是 SD。我不认为这是理所当然的。因为在下一行中他说在 eMMC 内存中找不到卡图像 - 这就是我的解释。要么是 eMMC 内存有缺陷(我希望但不相信),要么它抛出该消息,因为我不知道没有图像我刷新了 eMMC 内存 - 因为我还无法做到这一点。
好的。我现在有一种良好的感觉,我的 BPI-M6 并没有完全损坏,但这并没有真正让我有任何进展。
简单地将 1.5 GB 的数据从 eMMCImg 目录复制到 FAT32 格式的 µSD 也对我没有帮助。我只再得到一个

gpt header data corrupted!
get gpt error!

他可能不喜欢FAT32。当我插入带有 Raspberry Pi 映像的 µSD 时,我也会收到相同的消息。Banana Pi 可能有自己的图像格式。

我们在另一台电脑上尝试一下

尽管该驱动程序似乎在我的 Window 7 PC上运行良好。也许这与这台电脑有关。因为Banana Pi 论坛中的其他人可能已经烧录了映像,没有任何进一步的问题。
我首先在 Windows 10 系统上进行了尝试,因为我认为该工具可能不适合 Windows 7 等较旧的 Windows 版本。但我在运行 Windows 10 的Acer平板电脑上也没有任何运气。安装成功了,但驱动程序不行。而且Senary工具也无法启动,显然与操作系统不兼容。奇怪的。

而且它仍然有效!

我终于在装有 Windows 7 的旧东芝笔记本上取得了成功。它有 Synaptics 的触摸板,也许这就是原因;) Senary / Synaptics 工具感觉很自在且舒适,并且可以轻松安装,就像直接安装的两个驱动程序一样。然后它就毫无问题地启动了,并立即找到了我的 Banana Pi BPI-6M 板。

底部中心的字体不再是红色,是中文“找到 1 个设备”,在端口 1 下您现在还可以看到标有 ID“6-3”的内容。只是不要点击诱人的“[中文] eMMC”按钮!中文代表“删除”。左边的绿色按钮只删除eMMC。相反,我们按下右下角的按钮,该按钮负责上传或“刻录”。
然而,我们面临着一条看起来很危险的信息,中间有很多红色的中文文字:

但翻译后,恐怖很快就消失了:

Titel: Bestätigen Sie den Bildpfad                            

Bitte bestätigen Sie, dass der Image-Pfad korrekt ist. Ein falscher Image-Pfad führt dazu, dass Sie nach dem Brennen nicht auf das System zugreifen können. Sie müssen das Image erneut brennen, um es wiederherzustellen.

[Pfad ändern] [Weiter programmieren]

[] Keine Erinnerung mehr, einfach direkt in der Zukunft programmieren

---freundliche Erinnerung---

Wählen Sie, um den Pfad zu ändern: Kehren Sie zur Hauptoberfläche zurück, um den Bildpfad erneut auszuwählen, und klicken Sie dann auf die Schaltfläche, um das Brennen des Bildes erneut zu starten.

Wählen Sie „Weiterbrennen“: Starten Sie dann direkt das Brennen des Bildes

所以我选择正确的按钮并“继续刻录”。然后我可以在图像上传时看到进度条:


进度条最终达到 100%。固件刷写成功!
在记事本上,将带有 Android TV 映像的固件从 Banana Pi 站点上传到开发板即可立即完成。一切都很顺利,正如你所期望的那样。如果您有计算机和 Windows,那就没问题了。在我看来,Senary 工具在这里有点挑剔。
我想我一开始就有点运气不好。但最终它成功了。走迂回路线的好处是我学习并学到了很多关于Banana Pi BPI-6的知识。
例如,复位后使用 SPI 按钮通过调试消息。顺便说一句,如果您同时按住复位、USB 和启动,即进入启动模式,调试输出将保持为空;然后释放reset,然后释放USB。没有输出表明您现在处于启动模式或类似的情况。本来是相当实用的,但在技术上可能不太可能。

结果,上传图片测试

现在重要的时刻来了:我的Banana Pi BPI-M6工作正常吗?闪现有效果吗?M6会开机吗?Android 镜像是什么样的?你能用它做什么?
因此,我断开 Banana Pi 与笔记本电脑的连接,然后将其再次连接到我的 HDMI 显示器。然后我给它通电。Synaptics 徽标短暂闪烁(我认为您可以使用 Senary 工具自行设置,但我还没有尝试过),然后出现 Android TV 徽标,最后我的 Banana Pi 显示以下屏幕 :这里以视频形式为您再次处理:

大约 30 秒后,Android TV 加载完毕,Banana Pi 即可启动。
您将在我的下一篇文章中了解 Android TV Image 的功能、您可以使用它做什么以及 Banana Pi BPI-M6 如何使用它执行操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/121478.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Zabbix“专家坐诊”第210期问答汇总

问题一 Q&#xff1a;zabbix触发器条件基于历史趋势的函数有示例吗&#xff1f;还有这些基于历史趋势的函数&#xff0c;具体是读取历史表还是趋势表&#xff1f; A&#xff1a;读历史表&#xff0c;示例可以看看官网的。 https://www.bookstack.cn/read/zabbix-5.0-zh/37cf0…

Qt实现自定义多选下拉列表

目录 前言1、 功能描述2、代码实现总结 前言 本文记录了一种通过继承 QComboBox 实现下拉列表多选功能的方法。效果如下图所示&#xff1a; 1、 功能描述 普通的下拉列表只支持选择一个选项&#xff0c;在软件开发过程中&#xff0c;经常会遇到下拉列表支持选择多个选项的需…

网络原理---拿捏网络层:IP协议

文章目录 IP协议4位版本4位首部长度、选项8位服务类型&#xff08;TOS&#xff09;16位总长度16位标识、3位标志、13位片偏移8位生存时间&#xff08;TTL&#xff09;8位协议16位首部校验和32位源IP地址、32位目的IP地址解决IP地址不够用的问题动态分配IP地址NAT机制&#xff0…

RPA处理重复工作,助力高效资金管理

在瞬息万变的市场竞争中&#xff0c;众多企业开展多元化经营以获取最大的经济效益。然而&#xff0c;企业的多元化经营程度越高&#xff0c;协调活动可能造成的决策延误也越多&#xff0c;其资金管理往往将面临更大的考验。随着新技术的发展&#xff0c;更多具备多元产业的企业…

关于卷积神经网络的填充(padding)

认识填充 &#xff08;padding&#xff09; 随着卷积层数的加深&#xff0c;输出进一步缩小&#xff0c;那么最终会导致输出很快就只剩下1∗1的数组&#xff0c;这也就没办法继续计算了&#xff0c;所以提出了填充的方法来方便网络的进一步加深。 其实填充的原因有两点&#xf…

亚马逊云科技Zero ETL集成全面可用,可运行近乎实时的分析和机器学习

亚马逊云科技数据库、数据分析和机器学习全球副总裁Swami Sivasubramanian曾指出&#xff1a;“数据是应用、流程和商业决策的核心。”如今&#xff0c;客户常用的数据传输模式是建立从Amazon Aurora到Amazon Redshift的数据管道。这些解决方案能够帮助客户获得新的见解&#x…

“2024杭州国际物联网展览会”定于4月份在杭州国际博览中心召开

随着科技的飞速发展&#xff0c;物联网已经成为当今社会的一个重要组成部分。物联网技术正在逐渐渗透到各个领域&#xff0c;为人们的生活带来更多的便利和智慧。物联网的发展趋势将受到技术、应用、安全等多方面的影响和推动。未来&#xff0c;物联网将更加智能化、自主化和安…

使用Docker部署开源分布式任务调度系统DolphinScheduler

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 使用Docker部署开源分布式任务调度系统DolphinScheduler 文章目录 使用Docker部署开源分布式任务…

Bun 1.0.7 版本发布,实现多个 Node.js 兼容改进

导读Bun 是一个集打包工具、转译器和包管理器于一体的 JavaScript 运行时&#xff0c;由 Jarred Sumner 发布了 1.0.7 版本。本次更新实现了对 Node.js 运行时的多项兼容性改进&#xff0c;并修复了近 60 个 bug。 根据发布说明&#xff0c;本版本对 “bun install” 命令进行…

【机器学习】六、概率图模型

今天我们对概率图模型&#xff08;Probabilistic Graphical Model&#xff0c;PGM&#xff09;做一个总结。 模型表示 概率图模型&#xff0c;是指一种用图结构来描述多元随机变量之间条件独立关系的概率模型。 它提出的背景是为了更好研究复杂联合概率分布的数据特征&#x…

华为gre带验证key案例

配置FW_A。 a.配置接口的IP地址&#xff0c;并将接口加入安全区域。 system-view [sysname] sysname FW_A [FW_A] interface GigabitEthernet 1/0/1 [FW_A-GigabitEthernet1/0/1] ip address 1.1.1.1 24 [FW_A-GigabitEthernet1/0/1] quit [FW_A] interface GigabitEthernet 1/…

在Linux中搭建Mosquitto MQTT协议消息服务端并结合内网穿透工具实现公网访问

文章目录 前言1. Linux 搭建 Mosquitto2. Linux 安装Cpolar3. 创建MQTT服务公网连接地址4. 客户端远程连接MQTT服务5. 代码调用MQTT服务6. 固定连接TCP公网地址7. 固定地址连接测试 前言 Mosquitto是一个开源的消息代理&#xff0c;它实现了MQTT协议版本3.1和3.1.1。它可以在不…

GZ038 物联网应用开发赛题第1套

2023年全国职业院校技能大赛 高职组 物联网应用开发 任 务 书 (第1套卷) 工位号:______________ 第一部分 竞赛须知 一、竞赛要求 1、正确使用工具,操作安全规范; 2、竞赛过程中如有异议,可向现场考评人员反映,不得扰乱赛场秩序; 3、遵守赛场纪律,尊重考评人员…

HGHAC4.2.1开启DCS Failsafe Mode的步骤

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;4.5.8 文档用途 本文档用于介绍hghac4.2.1版本开启dcs failsafe mode的步骤及验证方法 详细信息 一、新增功能说明 Hghac4.2.1封装自patroni3.…

71 内网安全-域横向网络传输应用层隧道技术

目录 必备知识点&#xff1a;1.代理和隧道技术区别?2.隧道技术为了解决什么?3.隧道技术前期的必备条件? 演示案例:网络传输应用层检测连通性-检测网络层ICMP隧道Ptunnel使用-检测利用传输层转发隧道Portmap使用-检测,利用传输层转发隧道Netcat使用-检测,利用,功能应用层DNS隧…

网站小程序分类目录网源码系统+会员登录注册功能 带完整搭建教程

大家好啊&#xff0c;源码小编今天来给大家分享一款网站小程序分类目录网源码系统会员登录注册功能 。 以下是核心代码图模块&#xff1a; 系统特色功能一览&#xff1a; 分类目录&#xff1a;系统按照不同的类别对网站进行分类&#xff0c;方便用户查找自己需要的网站。用户可…

K8S篇之etcd数据备份与恢复

一、etcd备份与恢复 基本了解&#xff1a; 1、k8s 使用etcd数据库实时存储集群中的数据&#xff0c;安全起见&#xff0c;一定要备份。 2、备份只需要在一个节点上备份就可以了&#xff0c;每个节点上的数据是同步的&#xff1b;但是数据恢复是需要在每个节点上进行。 3、etcd…

门窗定制服务预约小程序效果如何

无论建筑工程还是普通家庭&#xff0c;都有门窗订购需求&#xff0c;对商家来说&#xff0c;不断传播品牌、获客转化是首要的&#xff0c;然而在实际经营中门窗生意也会面临一些痛点&#xff1a; 1、品牌宣传拓客难 门窗生意同行较多&#xff0c;而且传单等形式低效且不太适用…

【原创】java+swing+mysql宠物领养管理系统设计与实现

摘要&#xff1a; 生活中&#xff0c;有很多被人遗弃的宠物&#xff0c;这些宠物的处理成为了一个新的难题。生活中也有许多人喜欢养宠物&#xff0c;为了方便大家进行宠物领养&#xff0c;提高宠物领养管理的效率和便利性。本文针对这一问题&#xff0c;提出设计和实现一个基…

环形链表~

题目描述 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。如果链表中存在环&#xff0c;则返回true。否则&#xff0c;返回false 。 解题思路 采用快慢指针的思想&#xff0c;创建fast和slow一快一慢指针&#xff0c;slow一次走一步&#xff0c;fast一次走两步&…