QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1748|回复: 5

lumit 4510有人用gcc来编译么?

[复制链接]
发表于 2005-9-4 22:56:41 | 显示全部楼层 |阅读模式
打算近期提供finsh的第一个版本,如果用gcc,可以自动把核心文件的符号表导出加载到finsh中去,这样就可以在finsh中调用系统中的任何函数了

谁愿意帮试试?(我手头没lumit板子)
发表于 2005-9-5 09:58:04 | 显示全部楼层
我对 finsh 还不是很熟悉,能否详细介绍一下它的功能和用途?  lumit4510 bootloader 目前可以支持二进制可执行映像文件的下载和自动执行,如果 finsh 可以 objcopy 出一个 bin 文件那就可以加载到 lumit4510 的板子上。
回复

使用道具 举报

 楼主| 发表于 2005-9-5 10:44:35 | 显示全部楼层
finsh是这样的,它是一个shell系统,在这个shell下可以执行一些函数,可以自动把一些参数传递到函数中(仅限于char,short,int/long,指针)

例如系统中有这么一个函数:show_task(int tid)
那么直接在finsh中输入
finsh>>show_task(0)
将调用这个函数,参数是0(假设是显示某个任务的详细信息)

又例如对于通常意义的函数
finsh>>void* ptr;
finsh>>ptr = fopen("test.txt", "r");
finsh>>void* buffer;
finsh>>buffer = malloc(256);
finsh>>fread(buffer, 128, 2, ptr);
finsh>>...
(所有的这些都可以在shell命令行上交互,什么东西不行?结构体不支持)

符号表的自动导入是,把内核映像文件中的全部或部分符号导入到finsh中去,使得在shell下能够直接访问这些函数、变量

其他类似的有RTEMS的C-Expression,vxWorks的Shell系统等
回复

使用道具 举报

发表于 2005-9-5 11:54:29 | 显示全部楼层
finsh 的移植需要开发板提供哪些支持?  这个 shell 是可以用于板子的在线编程,比如点灯,类似于 basic 的命令解释执行,对么?
回复

使用道具 举报

 楼主| 发表于 2005-9-5 13:15:57 | 显示全部楼层
不需要什么支持,不需要动态分配内存,不需要OS支持
只需要:
strncpy,memset,strncmp

获取输入/输出需要手动挂接(即自己把从串口输入、输出挂上去)

可以用于动态的改变一些东西,例如点灯,修改/查看寄存器 etc
但运行的这些命令无法保存,也不支持从板子中读取一个文件做为脚本运行(全功能的FinC太大,这个是精简版的Finsh,保持在32k以下(不包括系统符号表))
回复

使用道具 举报

发表于 2005-9-5 16:34:25 | 显示全部楼层
那应该没问题,这几个条件都很容易满足,你可以先尝试一下移植到 uclinux 里面做为一个应用程序,然后通过 skyeye 调试,如果都没问题就可以移植到 lumit4510 上了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-12-4 17:08 , Processed in 0.042417 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表