打印

vsflinux的linux头文件生成方法

[复制链接]
1128|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vsfopen|  楼主 | 2018-8-30 18:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 vsfopen 于 2018-8-30 23:07 编辑

目前,vsflinux虽然已经开源,但是还没公开linux头文件的生成方法,我先尝试几种方法,最终确定下最简单的。
目前尝试的方法:
win10的wsl(windows subsystem for linux):
1. 在win10的powershell管理员模式下,运行lxrun /install

2. 安装完成后,可以运行bash on ubuntu on windows

安装完后,建议更新一下。
3. 安装linux头文件,不过这里只能使用x86-64的只要安装GCC后,头文件就位于/usr/include里,把include目录,全部复制到vsf/component/port/linux下

4. 删除include目录里,和IAR冲突的头文件
比如:setjmp.h, stdio.h, string.h等等
5. 修改feature.h
#undef ......
#undef        __KERNEL_STRICT_NAMES

#define __USE_VSF
#ifdef __USE_VSF
# define _POSIX_SOURCE                1
# define _POSIX_C_SOURCE        1
# define __USE_POSIX199309        1
# define __USE_MISC                        1
// to avoid types.h to define stdint types
# define __int8_t_defined
#endif
在开头的一大段#undef后,增加上面的代码
6. 修改pthread相关的头文件,主要修改数据结构:
typedef struct vsfsm_crit_t pthread_mutex_t;

typedef union
{
#ifdef __USE_VSF
  struct vsfsm_t *pending_next;
#else
  struct
  {
    int __lock;
    unsigned int __futex;
    __extension__ unsigned long long int __total_seq;
    __extension__ unsigned long long int __wakeup_seq;
    __extension__ unsigned long long int __woken_seq;
    void *__mutex;
    unsigned int __nwaiters;
    unsigned int __broadcast_seq;
  } __data;
  char __size[__SIZEOF_PTHREAD_COND_T];
  __extension__ long long int __align;
#endif
} pthread_cond_t;












第二种,最简单的方法:
1. 加QQ群:736714326
2. 群文件里下载include_wsl_fixed.zip

使用特权

评论回复

相关帖子

沙发
long931229| | 2020-2-22 19:57 | 只看该作者
下次有人骂我了...我给他还回去..

使用特权

评论回复
发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

90

主题

325

帖子

8

粉丝