共4条
1/1 1 跳转至页
基于定制nios2系统的uClinux开发讨论帖,编译问题答疑。[原创]
有很多朋友在自己的nios2工程中编译uClinux遇到问题。
基于nios2的uClinux开发包,是由microtronix公司发起,并移植的。目前,nios2处理器已经正式纳入uClinux.org发行的uClinux开发包中。开发方式共有两类:
1.基于cygwin下的开发包。特色:安装简单,但是速度较慢.
2.基于linux平台的标准开发包,需要从uClinux.org下载标准源码包,并且打补丁,安装交叉编译环境,安装较为繁琐。但是速度较快,并且原汁原味。
下面介绍cygwin平台下在定制nios2系统中uClinux开发。
(建议先阅读开发包中quick start手册。)
microtronix的uClinux中自带几个针对Altera官方开发板的配置文件。使用这些配置文件直接对自己工程编译时是通不过的。下面将介绍其中猫腻,如果有问题可以把编译信息贴出来。
[URL=http://http://bbs.eepw.com.cn/dispbbs.asp?boardID=41&ID=72636&page=1]http://bbs.eepw.com.cn/dispbbs.asp?boardID=41&ID=72636&page=1[/URL]
本文的实验工程基于Dragoon_1CX开发平台:。由杭州穿山甲电子提供
[URL=http://www.epangolin.com]www.epangolin.com[/URL]
接下来,我们通过分析www.epangolin.com 修改的源码包,来说明nios2的uClinux编译方式。
源代码安装目录为:\altera\kits\nios2\bin\eclipse\plugins\com.microtronix.nios2linux.kernel_1.4.0\linux-2.6.x
其中在linux-2.6.x\arch\nios2nommu\s\目录下为nios2-quartus工程的ptf文件适配脚本,用来生成uClinux源码中定义的设备结构,每次编译都会重新产生system.h傀儡文件。
要让uClinux编译通过,就必须直接修改目录下的脚本。
我们举一个altera_avalon_timer.pm例子来说明:(请参照注释)
package altera_avalon_timer;
use base qw(BasicModule);
use strict;
sub required_class_name {
"altera_avalon_timer";
}
sub required_module_names {
"timer0"
} //必须与sopc-builder下同名,不然编译出错,timer0是用来做uClinux系统调度的时钟触发,必备硬件
sub print_prefix {
my ($class, $system) = @_;
print "\n";
print "#ifndef __ASSEMBLY__\n";
print "#include \n";
print "#endif\n";
print "\n";
}
sub base_address_cast {
"np_timer"
} //重命名timer数据结构与内核保持一致
# only timers with a non-fixed-period are valid
sub is_module_valid {
my ($class, $system, $module_name) = @_;
my $module = $system->getModule ($module_name);
my $fixed_period = $module->getWSAAssignment ('fixed_period'); //一个小陷阱,如果您的工程timer不是制定分辨率,例如
if ($fixed_period eq '0') { //10ms,则编译报错。很多人都卡在这里。:-)
return 1;
} else {
return 0; //可以改成return 1; 则不检测timer中设定的值与预定义是否相符
}
}
sub run {
altera_avalon_timer->run2 (@_);
}
1;
从上面可以看出,如果不是用altera官方开发板中的nios2工程编译时会给初学者带来很多麻烦。
下图是,已经被www.epangolin.com 修改过的源码包,用于Dragoon_1CX开发板:
[IMG]http://www.epangolin.com/productpic/menuconfig.gif[/IMG]
[IMG]http://www.epangolin.com/productpic/uClinux-uart.gif[/IMG]
总之编译问题多种多样,有些是自己疏忽,大家可以把编译输出信息贴出来,一起讨论。
关于linux编译环境的建立,还在整理当中。
目前我们开发小组,使用集中式服务器,用ssh-client,samba连接linux服务器。ARM,nios2,Leon的linux编译环境都在linux服务器上。
项目管理使用CVS。
代码编辑器凭个人喜好,SourceInsight居多,微软的studio2005也不错。
[align=right][color=#000066][此贴子已经被作者于2006-12-8 13:21:31编辑过][/color][/align]
关键词: 基于 定制 nios2 系统 uClinux 开发
共4条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| OK1126B-S开发板下以导航按键控制云台/机械臂姿态调整被打赏¥29元 | |
| 【树莓派5】便携热成像仪被打赏¥36元 | |
| 【树莓派5】环境监测仪被打赏¥35元 | |
| OK1126B-S开发板下多时段语音提示型电子时钟被打赏¥27元 | |
| OK1126B-S开发板下函数构建及步进电机驱动控制被打赏¥25元 | |
| 【S32K3XX】LPI2C 参数配置说明被打赏¥20元 | |
| OK1126B-S开发板的脚本编程及应用设计被打赏¥27元 | |
| 5v升压8.4v两节锂电池充电芯片,针对同步和异步的IC测试被打赏¥35元 | |
| 【S32K3XX】S32DS LPI2C 配置失败问题解决被打赏¥22元 | |
| 【S32K3XX】FLASH 的 DID 保护机制被打赏¥19元 | |
我要赚赏金
