vsflinux的linux头文件生成方法

[复制链接]
751|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
wsl.png
2. 安装完成后,可以运行bash on ubuntu on windows
bash.png
安装完后,建议更新一下。
3. 安装linux头文件,不过这里只能使用x86-64的只要安装GCC后,头文件就位于/usr/include里,把include目录,全部复制到vsf/component/port/linux下
port_linux.png
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 | 显示全部楼层
下次有人骂我了...我给他还回去..

使用特权

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

本版积分规则

89

主题

324

帖子

8

粉丝