当前位置: 首页 > wzjs >正文

坤和建设 网站网络营销环境宏观微观分析

坤和建设 网站,网络营销环境宏观微观分析,wordpress 整站ssl,淘宝网站是谁做的好目录 引言 CangjieMagic 对嵌入式开发板的要求 编译环境准备 本地编译 交叉编译 实战测试 程序编写 对cjpm.toml文件的修改 运行结果 结束语 引言 在人工智能与物联网技术飞速发展的今天,嵌入式系统作为连接物理世界与数字世界的桥梁,承担着越…

目录

引言

CangjieMagic 对嵌入式开发板的要求

编译环境准备

本地编译

交叉编译

实战测试

程序编写

对cjpm.toml文件的修改

运行结果

结束语


引言

在人工智能与物联网技术飞速发展的今天,嵌入式系统作为连接物理世界与数字世界的桥梁,承担着越来越重要的角色。智能体与嵌入式系统紧密相连、相互赋能。智能体为嵌入式系统注入 “智慧”,使其具备自主决策与交互能力;嵌入式系统则为智能体提供运行载体,二者结合极大拓展了应用边界。

CangjieMagic 智能体框架凭借其高效、灵活的特点,成为众多开发者在嵌入式场景下实现智能应用的有力工具。本文将以树莓派 4B 为硬件平台,带领大家深入体验 CangjieMagic 智能体框架在嵌入式系统中的实战应用。

CangjieMagic 对嵌入式开发板的要求

CangjieMagic 智能体框架是基于仓颉编程语言构建的 LLM Agent 开发框架,其主要特点包括:Agent DSL、支持 MCP 协议,支持模块化调用,支持任务智能规划。Cangjie Agent DSL 是一个用于定义和管理 Agent 的专用语言。它允许开发人员通过结构化的系统提示词、工具和各类协作策略来增强 Agent 的功能。

目前CangjieMagic 主要还是在x86、鸿蒙、苹果电脑等几个平台进行开发和测试,开发者缺少对嵌入式开发板的测试。由于Cangjie的runtime没有开源,且只支持x86_64的Linux和Windows,以及AARCH64的Linux和鸿蒙,以及MacOS这几个平台,所以目前还无法在RISC-V平台上运行。本文主要讨论AARCH64的Linux平台,这个也是目前在嵌入式开发板中最多的平台之一。

Cangjie编译器主要支持Ubuntu 18.0以上版本,所以其支持的AARCH64的GCC编译器是7.5以上版本,GLIBC是2.27。所以开发板的系统不应低于这个标准,比如我测试了米尔的TH507开发板,由于其自带镜像的GLIBC是2.25,除非升级镜像中的库文件,否则没法运行Cangjie的代码。测试中还发现,Cangjie编译器cjc对Ubuntu的AARCH64的GCC比较友好,而一些第三方的编译器可能不能很好适配。

我的测试基于树莓派 4B,这是一款性能强劲、功能丰富且价格亲民的单板计算机,配备四核 64 位 ARM Cortex-A72 处理器、最高 8GB 内存,支持千兆以太网、USB 3.0、双频 Wi-Fi 等多种接口。它的优点是镜像不断更新升级,所以适配CangjieMagic要容易些。

编译环境准备

本地编译

Cangjie是可以在树莓派4B上实现本地编译的。需要先从仓颉语言的网站上下载SDK:下载中心-仓颉编程语言官网。在其中选择AARCH64版本的编译器。

下载后解压安装包,然后运行evsetup脚本设置环境变量。

source cangjie/envsetup.sh

先编写了一个简单的 “Hello World” 仓颉程序,存放在名为 “hello_world” 的目录下,源文件为 “hello.cj”。

// hello.cj
main() {println("你好,仓颉")
}

然后使用下面的命令生成可执行文件main:

cjc hello.cj

 编译完成后,会生成可执行文件main。直接运行这个文件,就可以打印"你好,仓颉",这就说明当前的开发板是支持仓颉语言的。

 CangjieMagic也是可以本地编译的,但是并不建议这么做,因为CangjieMagic太复杂了,本地编译会非常慢,也可能会因为内存不够崩溃,所以还是建议交叉编译CangjieMagic。

交叉编译

首先需要再x86_64的Ubuntu中安装AARCH64的编译器:

sudo apt install gcc-aarch64-linux-gnu

然后需要拷贝aarch64开发包中以下三个目录的文件到x86_64的Linux软件包的对应目录:

  • cangjie/runtime/lib/linux_aarch64_llvm/
  • cangjie/modules/linux_aarch64_llvm/
  • cangjie/lib/linux_aarch64_llvm/

交叉编译Cangjie程序至少需要以下5个文件:

  •  Scrt1.o、crti.o和crtn.o文件在/usr/aarch64-linux-gnu/lib/目录下。
  • crtbeginS.o和crtendS.o' '文件在/usr/lib/gcc-cross/aarch64-linux-gnu/11目录下( 路径有可能因为操作系统的不同而不同)。

此时需要使用--toolchain <value>或者-B <value>指定编译工具链中,二进制文件存放的路径。二进制文件包括:编译器、链接器、工具链等提供的 C 运行时目标文件(例如 crt0.o、 crti.o等)。在准备好编译工具链后,可以在将其存放在一个自定义路径,然后通过 --toolchain <value> 向编译器传入该路径,即可让编译器调用到该路径下的二进制文件进行交叉编译。

 可以对前面的hello.cj进行一下交叉编译:

cjc hello.cj --target aarch64-unknown-linux-gnu -B /usr/aarch64-linux-gnu/lib/ -B /usr/lib/gcc-cross/aarch64-linux-gnu/11

编译完成后,会生成可执行文件main。 使用file命令检查一下确实生成了aarch64的文件。 

developer@developer:~/IDEProjects$ file main
main: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, not stripped

实战测试

程序编写

先建立一个demo目录,然后使用下面的命令创建工程:

cjpm init

添加对本项目的依赖,需要修改新建项目的 cjpm.toml

[dependencies]magic = { git = "https://gitcode.com/Cangjie-TPC/CangjieMagic.git", branch = "dev" }

拷贝如下代码至 main.cj 中,并在代码中设置大语言模型服务商的 API key。这里使用的是华为云的DeepSeek服务,有关设置可以参考:在CangjieMagic智能体框架中集成华为云的DeepSeek服务-CSDN博客

package demoimport magic.dsl.*
import magic.prelude.*
import magic.config.Config@agent[model: "deepseek:DeepSeek-R1"]
class BlackCatAssistant {@prompt("你是黑猫警长的助手""当接到群众通知后,你需要唱起黑猫警长的专属 BGM 并安抚群众情绪")
}main() {Config.env["DEEPSEEK_API_KEY"] = "xxxx-s0EOCKOlxbfhJBU_V2KVHw57BBDnRD759eF6didZRS9HD2KhKS36y5s9Q7bMuPRQE0NC6v5bkOdA"Config.env["DEEPSEEK_BASE_URL"] = "https://maas-cn-southwest-2.modelarts-maas.com/v1/infers/8a062fd4-7367-4ab4-a936-5eeb8fb821c4/v1/"let agent = BlackCatAssistant()let result = agent.chat("一只耳来啦")println(result)
}

对cjpm.toml文件的修改

如果直接对工程实施cjpm build,会出现如下错误:

error: conditional compilation have not supported this condition: 'ohos'
==> /home/developer/.cjpm/git/magic/b7cfcb0216ae48e896f16c20592a7c94689fc380/src/log/log_utils_ohos.cj:8:7:
|
8 | @When[ohos == "true"]
| ^
|1 error generated, 1 error printed.

这是因为有几个文件只能在ohos下进行编译,所以修改cjpm.toml文件,设置ohos为false。在文件中加入如下代码(2025年6月3日,官方已经把我的pr合并进去了,所以最新的文件中已经包括了下面这一行,不过仅针对本机编译):

[target.aarch64-unknown-linux-gnu]compile-option = "--cfg \"ohos=false\""

如果是交叉编译,还需要加入-B选项以指定启动文件的位置:

[target.aarch64-unknown-linux-gnu]compile-option = "-B /usr/aarch64-linux-gnu/lib/ -B /usr/lib/gcc-cross/aarch64-linux-gnu/11 --cfg \"ohos=false\""

上面的路径有可能因为操作系统的不同而不同。  

一共有两个cjpm.toml要修改,一个是/home/developer/.cjpm/git/magic/b7cfcb0216ae48e896f16c20592a7c94689fc380目录下的,另一个是demo目录下的。

编译后需要将canjie/runtime目录下aarch64的文件和demo/target目录下的aarch64的文件都打包拷贝到开发板上。

运行结果

使用export LD_LIBRARY_PATH目录设置好所需要的库文件路径,然后运行程序就可以看到结果了。

结束语

智能体和嵌入式系统的结合促进了新技术的融合与创新。随着人工智能算法、机器学习技术的不断发展,智能体可以在嵌入式系统上实现更高级的功能,如基于深度学习的图像识别、自然语言处理等。同时,物联网技术的兴起让嵌入式设备能够连接到网络,智能体可以通过网络获取更多信息,与其他智能体或系统进行交互协作,进一步拓展应用场景。例如,在智慧城市中,分布在各处的嵌入式智能设备(如智能路灯、智能交通信号灯)通过智能体的协同工作,实现资源优化配置和城市管理的智能化。​

目前看,仓颉团队的工作中心不在嵌入式系统方面,所以相关的支持还不是很完善,需要我们自己做一些探索和尝试。

http://www.dtcms.com/wzjs/15781.html

相关文章:

  • 会外语和做网站现在有哪些推广平台
  • 中国做爰网站网络销售怎么找客源
  • 企业网站优化搜行者seo营销型网站建设服务
  • 怎么用域名建网站新手seo入门教程
  • 如何向百度提交网站数据分析网官网
  • 杭州市建设信用网百度seo一本通
  • 公众号菜单栏页面模板排名sem优化软件
  • p2p理财网站开发要求大数据培训机构排名前十
  • 响应式网站模板百度云泉州seo报价
  • 成都网站建设中心防疫优化措施
  • 网站建设价格费用外链查询
  • 网站标题会影响吗近三天时政热点
  • 揭阳网站推广教程广州新闻热点事件
  • 重庆品牌营销型网站建设官网关键词优化价格
  • wordpress导购站主题企业管理培训班
  • 机票网站建设网站推广的方法
  • 做任务悬赏网站百度一下知道官网
  • 网站规划的缩略图小广告图片
  • 土巴兔官网360优化大师最新版
  • 深圳市最新疫情防控动态抖音seo排名优化
  • 制作微信小程序需要什么技术网络优化工作应该怎么做
  • 玩具网站建设策划书流程网站优化的主要内容
  • 优化网站的步骤案列淘宝推广公司
  • 网站直播怎么做的网站定制
  • 公众号官方平台天猫seo搜索优化
  • 做网做网站建设seo是指搜索引擎优化
  • 临沂做商城网站设计免费制作网站app
  • 给国外做网站搜索引擎推广试题
  • 网站建设对企业重要性地推网
  • cms网站建设的实训总结今日油价92汽油价格