共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 跳转至页
回复
| 有奖活动 | |
|---|---|
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 打赏了!打赏了!打赏了! | |
我要赚赏金打赏帖 |
|
|---|---|
| 空气质量检测器设计与实现被打赏¥24元 | |
| 【瑞萨RA8D1 LVGL/LWIP评测】LWIP进行UDP、TCP、HTTP、MQTT功能联合测试被打赏¥41元 | |
| 【瑞萨RA8D1 LVGL/LWIP评测】RA8D1部署FreeRTOS+LWIP被打赏¥36元 | |
| RTOS怎么选?让我来给你答案!被打赏¥15元 | |
| 【S32K3XX】Flash驱动使用被打赏¥26元 | |
| 【FreeRtos】第一个任务的启动过程被打赏¥21元 | |
| 【分享开发笔记,赚取电动螺丝刀】FPB-RA6E2开发板的WDT功能测试被打赏¥22元 | |
| 关于cmakelist特性presets的使用被打赏¥20元 | |
| 【分享开发笔记,赚取电动螺丝刀】M5STACK系列屏幕质量测试程序,竟然有块亮斑?被打赏¥20元 | |
| 【分享开发笔记,赚取电动螺丝刀】快速搭建瑞萨FPB-RA6E2开发板开发环境被打赏¥14元 | |
我要赚赏金
