89dd0c29e2
dlang: use importC to get NuttX include zig: leds_zig added
59 lines
2.3 KiB
Zig
59 lines
2.3 KiB
Zig
//***************************************************************************
|
|
// examples/hello_zig/hello_zig.zig
|
|
//
|
|
// Licensed to the Apache Software Foundation (ASF) under one or more
|
|
// contributor license agreements. See the NOTICE file distributed with
|
|
// this work for additional information regarding copyright ownership. The
|
|
// ASF licenses this file to you under the Apache License, Version 2.0 (the
|
|
// "License"); you may not use this file except in compliance with the
|
|
// License. You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
// License for the specific language governing permissions and limitations
|
|
// under the License.
|
|
//
|
|
//***************************************************************************
|
|
|
|
//***************************************************************************
|
|
// Included Files
|
|
//***************************************************************************
|
|
const std = @import("std");
|
|
|
|
//****************************************************************************
|
|
//* C API - need libc linking (freestanding libc is stubs only)
|
|
//****************************************************************************
|
|
// NuttX namespace
|
|
const NuttX = struct {
|
|
pub const c = @cImport({
|
|
@cInclude("nuttx/config.h");
|
|
@cInclude("stdio.h");
|
|
});
|
|
pub fn print(comptime fmt: [*:0]const u8, args: anytype) void {
|
|
_ = printf(std.fmt.comptimePrint(std.mem.span(fmt), args));
|
|
}
|
|
};
|
|
|
|
// or (optional) const c = std.c; // from std library (non-full libc)
|
|
|
|
// typedef alias
|
|
const printf = NuttX.c.printf;
|
|
//****************************************************************************
|
|
//* hello_zig_main
|
|
//****************************************************************************
|
|
comptime {
|
|
// rename to hello_zig_main entry point for nuttx
|
|
@export(hello_zig, .{
|
|
.name = "hello_zig_main",
|
|
.linkage = .weak,
|
|
});
|
|
}
|
|
|
|
fn hello_zig(_: c_int, _: ?[*]const [*]const u8) callconv(.C) c_int {
|
|
NuttX.print("[{s}]: Hello, Zig!\n", .{NuttX.c.CONFIG_ARCH_BOARD});
|
|
return 0;
|
|
}
|