0%

Zlog移植到AM335X开发板步骤

说明:

Zlog是个开源的纯C日志库,详细介绍自己网上搜索了解。移植到ARM开板–335X的步骤和验证简单做个笔记。

准备工作:

下载:
Github上下载版本1.2.15,地址:

https://github.com/HardySimpson/zlog

移植过程:

参考:https://blog.csdn.net/lz_obj/article/details/78656181

宿主机Ubuntu上建立目录保存zlog的工程文件,步骤如下:

cd /home/

mkdir zlog

cd zlog/

mkdir armzlog

cd armzlog/

复制本地上的zlog目录到/home/zlog/armzlog目录内:

cp -R /mnt/hgfs/vmshare/zlog-1.2.15/ ./

cd zlog-1.2.15/

设置交叉编译用的编译器,根据自己宿主机的情况设置:

make CC=arm-none-linux-gnueabi-gcc

指定编译后的安装目录,编译后的库文件在此路径下:

make PREFIX=/home/zlog/armzlog/ install

cd /home/zlog/

zip -ry armzlog.zip armzlog/*

上面所有操作完毕后,打包zip是整个项目打包,可以不要这步操作,直接复制.so文件到指定目录也行。

编译后的库文件如下:

libzlog.a libzlog.so libzlog.so.1 libzlog.so.1.2

把上面的库文件上传到开板,通过NFS方式,这样可以方便文件交换在ARM和Linux之间,具体配置方法参考网络上的其他笔记。

在开发板上输入如下:

mount -t nfs 192.168.35.42:/home/lin /mnt/nfs/ -o nolock

在ubuntu系统上的home/lin目录下新建一个目录存放lib文件

mkdir zlog_arm_lib

cd zlog_arm_lib/

cp /home/zlog/armzlog/lib/* ./

再查看ARM板的目录:

ARM上也新建一个目录,将NFS共享的文件夹中的4个库文件复制到新建目录里,要不开发板断电了每次要重新NFS一下:

cd home/

mkdir armzlog

cd armzlog/

mkdir lib

cd lib/

cp /mnt/nfs/zlog_arm_lib/* ./

cp libzlog.so.1.2 /lib/

cd /lib/

ln -s libzlog.so.1.2 libzlog.so.1

ln -s libzlog.so.1 libzlog.so

测试zlog:

建立的工程为了可以在与开发板连接后单步调试,这里使用VS2019+VISUALGDB(该插件网络上搜索安装后即可)。

建立工程的步骤省略,自行网络搜索参考一下即可。

工程建立完成后,注意要指定库的目录和库名,具体如下所示:

选择Makefiles settings项,填写包含目录和库名:

include directories:/home/zlog/armzlog/include

library directories:/home/zlog/armzlog/lib

library names: pthread zlog

测试代码:

#include <stdio.h>

#include "zlog.h"

int main(int argc, char** argv)
{
int rc;

zlog_category_t* c;
rc = zlog_init("/home/armzlog/test_hello.conf");
if (rc)
{
    printf("init failed\n");
    return -1;
}
c = zlog_get_category("my_cat");
if (!c)
{
    printf("get cat fail\n");
    zlog_fini();
    return -2;
}
zlog_info(c, "hello, zlog");
zlog_fini();

return 0;
}

代码中的test_hello.conf配置文件,放到开发板指定目录:/home/armzlog

经过上面的折腾后,工程可以单步调试了…

最后编译,运行即可。