ICS C# Board SDK 使用说明
使用本 SDK,开发者可以完全使用 C# 语言开发嵌入式应用程序,无需接触任何 C 语言或底层代码。
📋 环境要求
-
操作系统: Windows
-
.NET SDK:.NET 10 SDK
-
ICS C# SDK:ICS C# SDK (Gitee)
📥 第一步:安装 ICS C# SDK
下载 SDK 后,务必以管理员身份运行 PublishIcsCsharpSdk.exe。
-
操作方式:右键点击文件 → 选择“以管理员身份运行”
⚠️ 必须使用管理员权限,否则可能导致安装失败。

📁 第二步:创建用户工程
-
新建一个文件夹作为项目目录。
-
在该目录下创建一个
.csproj文件,内容如下:
xml
复制
<ProjectSdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<!-- 请将此处路径修改为你本机 SDK 的实际存放目录 -->
<IcsCSharpSdk>D:\Project\ICS_CSharpBoardSdk\ICS</IcsCSharpSdk>
<DisableUnsupportedError>true</DisableUnsupportedError>
<InvariantGlobalization>true</InvariantGlobalization>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<PrivateSdkAssembliesInclude="$(IlcSdkPath)\*.dll" />
</ItemGroup>
<!-- 按需引用 SDK 中的库,例如下方的 RTOS 通用库 -->
<ItemGroup>
<ProjectReferenceInclude="$(IcsCSharpSdk)\csharp_libs\Ics.Rtos\Ics.Rtos.Common\Ics.Rtos.Common.csproj" />
</ItemGroup>
<ImportProject="$(IcsCSharpSdk)\targets\Ics.NativeAot.Nuttx.targets" />
</Project>注意:请务必将
<IcsCSharpSdk>标签的值修改为你本机 SDK 的实际路径。关于库引用:SDK 的
csharp_libs目录下提供了 C# 版本的封装库。这些库通过 P/Invoke 技术调用了底层的 C 语言驱动程序,为上层应用提供了纯 C# 的编程接口。在开发应用时,必须引用基础库Ics.Rtos.Common以完成初始化。
✍️ 第三步:编写应用程序
在工程目录下创建
Program.cs文件,编写你的应用程序逻辑。完全使用标准 C# 语法即可,无需关心底层细节。示例代码:
csharp
复制
using System;
using Ics.Rtos.Common;
// 初始化RTOS环境
Ics.Rtos.Common.Ics.Initialize();
Console.WriteLine("Hello from C# on embedded board!");
while (true)
{
// 在此处编写你的业务逻辑
System.Threading.Thread.Sleep(1000);
}
🔨 第四步:编译工程
打开命令行工具,进入你的工程目录,执行以下编译命令:
bash
复制
dotnet publish -c Release -r linux-arm /p:PublishAot=true编译成功后,生成的可执行文件位于:
复制
bin\ARM32\Release\net10.0\linux-arm\publish\nuttx.bin
🚀 第五步:部署与运行
部署:将生成的
nuttx.bin文件拷贝到 SD 卡的ics文件夹中。上电:将 SD 卡插回开发板,然后重新上电。
运行:程序将自动开始运行!
💡 社区共建招募
我们希望构建一个更完善的 C# 嵌入式开发生态,诚邀志同道合的小伙伴加入!
P/Invoke 封装开发者:
目前,项目的底层 C 语言驱动程序已较为完善,但还需要更多开发者参与,将这些驱动通过 P/Invoke 技术封装成易于使用的 C# 库,以丰富
csharp_libs的功能。如果你熟悉 C# 与 C 的互操作,欢迎加入我们。内容与社区运营伙伴:
我们需要擅长通过公众号、知乎、B站、CSDN等平台进行技术推广和社区建设的伙伴。如果你对嵌入式、.NET 技术有热情,并乐于分享和传播,期待与你合作!
感兴趣的朋友,欢迎私信详谈!
现在,你就可以尽情使用 C# 在嵌入式世界畅游了!
夜雨聆风

