(Original issue) How can I solve the problem that the niosii project cannot renew when the project changes? (SOC) (nano II) (DE2-70)

Source: Internet
Author: User

Abstract
If the regular expression is uploaded online or offline, or when the regular expression is switched from the CD on the ephemeral disk to the hard disk, the Quartus II version is correct, you can open and renew the Quartus II project normally. However, you can still enable the development of the nioii project normally, this article discusses its root cause and proposes a solution.

Introduction
Environment: Windows XP SP3 + virtualbox 4.1.2 + Quartus II 11.0

This article will discuss the following topics:

1. Why do I need to change the category name or category location?

2. What problems do I have when I change the position of the project name or category?

3. Root Cause and solution.

4. Questions about using the blank project method.

1. Why do I need to change the category name or category location?

We often have various reasons to change the original project's category name or category location:

1. For ease of management, it is possible to move all the original projects in D: \ project \ To E: \ project \

2. my colleague gave me a whole project because I don't know what kind of work the project is under my colleagues' email address, so I will explain the problem to my work.

3. after reading and writing the entire package from the online environment, I don't know what the original upload routine stores, so I will explain the problem to my work.

4. from ephemeral disks to hard disks, I do not know the category stored in the original category, so I want to write the routine into my own job.

5. A new project is similar to a new project in a region. You just need to modify the project in the region and create a new project, add all project cases to the new project.

6. For ease of management, I want to change the project name of the original project.

In the above case, if the us II project is identified, the us II project is enabled as long as the Quartus II version is correct *. qpf resume can be used to activate the program, and the only problem is programmer *. CDF deny may be caused by the fact that the router operator is not allowed to initiate an inbound request, but the request is re-specified *. sof and *. the position of POF.

*. The concept of qpf project is similar to that of Visual C ++ 6 *. DSW or Visual Studio *. SLN, the entire project's case is opposite, so it doesn't matter if you change the file name or change the location of the project, as long as the location of the project is not changed, the entire project can operate normally.

However, this is not the case for the nioii project !!

Niosii SBT is changed using eclipse. It uses the concept of eclipse workspace. It is similar to the concept of *. sln in Visual Studio, but it is not complete. Eclipse allows you to manage multiple projects in one workspace. The workspace remembers the projectOpposite RegionSo when you change the name of your project, or change the location of your project, the workspace cannot be found.

According to the Daily planning solution of eclipse workspace, you should re-import the renamed niosii project to your workspace.. But is it true?

2. What problems do I have when I change the position of the project name or category?

Let's make a real reality, as shown in the following figure.De2_70_sopc_golden_miniIt is a project that is completely normal in both Quartus II and nioii SBT.

We are now changing the project name fromDe2_70_sopc_golden_miniChangeDe2_70_sopc_golden_mini2

We all know that changing the category name or category location does not affect the development and operation of the Quartus II project, now, focus is placed in the nois II project section.

Enable the nio ii sbt to switch the workspace category to the new category.De2_70_sopc_golden_mini2

After the project is opened, the following two projects are displayed before the project name is changed:Hello_worldAndHello_world_bspAs the current project name changes, only the project name changes.

Because two projects cannot be opened, we will remove these two projects from the workspace.

After the entire workspace is deleted, there is no project in it.

Rooted in eclipse's PhilosophyFormal Solution:As the project changes, we must import two projects to the new workspace.

The makefile project was previously generated using the niosii SBT, so selectImport NiO II software build Tools Project.

First, import the hello_world project. It is worth noting thatClean Project when importingCheck, that is, when the import project is complete, run make clean to clear all the previously left object files.

After the import is complete, the following warning statement is displayed, telling our project to include the contents of the tutorial path, but because the project name changes, therefore, the "include" error occurs. This is 1st issues.

Next, please import hello_world_bsp and rememberClean Project when importingCheck.

After the import is complete, no warning message or warning message is displayed.

If you execute "niosii-> Generate BSP" in hello_world_bsp, the following response message is displayed, indicating that *. sopcinfo cannot be found. This is 2nd issues.

If the following response message is displayed in the hello_world_bsp editor when you execute the niosii-> BSP Editor, *. sopcinfo cannot be found. This is 3rd issues.

If you build the app Project (hello_world) and BSP project, you can still find *. elf and *. a, but the following warning message appears, indicating that the makefile cannot be found *. sopcinfo. This is 4th issues.

In summary, we have found that if we change the name or position of the project, the following four problems will occur in the nioii project:

 
1. The include path not found warning will appear in the app Project (hello_world.
2. BSP Project (hello_world_bsp) cannot generate BSP rows.
3. the BSP Project (hello_world_bsp) will fail to publish the BSP editor.
4. Build app Project (hello_world) and BSP Project (hello_world_bsp) will show that the GPU file cannot be found in the makefile.

3. Root Cause and solution. 

APP Project (hello_world): Include path not found warning Root Cause

In the C/C ++ general-> paths and symbols gnc c and gnc c ++ of hello_world properties, we can find the contents of include directories, all objects are caught in the previous object name changes, and these object names cannot be deleted or modified because they are manually captured by eclipse, this is the root cause of 1st questions.

APP Project (hello_world): Include path not found warning Solution

Step 1:Properties of APP Project (hello_world)

Step 2: cygwin C compier of C/C ++ build-> discovery options, and press clear to clear the include PATH currently in use.

The prompt include path is to be cleared, and the include path will be crawled again during build, and the "OK" operation will be performed.

Step 4: C/C ++ build-> cygwin C ++ compier of discovery options, and press clear to clear the include PATH currently in use.

The prompt include path is to be cleared, and the include path will be crawled again during build, and the "OK" operation will be performed.

Step 5: Check the include path of the current app Project (hello_world)

C/C ++ general-> paths and symbols's signature des gnc c. Make sure all include paths has been cleared.

C/C ++ general-> paths and symbols's signature des gnc c ++, it is determined that all include paths have been cleared

The warnings of the original app Project (hello_world) is also lost.

You may say, "Isn't it necessary to include the BSP project path of the new project ?』 No, as prompted by step 3 and Step 4, if you re-build the app Project (hello_world), you will re-discover include path, we will wait for the BSP project to be resolved and re-build it together.

BSP Project (hello_world_bsp) cannot generate the root cause of BSP

First, understand what the generate bsp of the niosii SBT has done.Nios2-bsp-generate-filesAnd [4] p.4-30Regenerating your BSPAs described in, generate BSP will root the settings of the BSP project. BSP to locate *. sopcinfo, and then root the current *. sopcinfo will generate the upload case required by the latest drivers and Hal object and recreate the makefile.

Open settings. BSP, it will be found that the path between bspgeneratedlocation and sopcdesignfile is changed to the path before the project name changes. Therefore, the path cannot be found * During generate BSP *. sopcinfo. This is the root cause of 2nd questions.

BSP Project (hello_world_bsp) cannot generate BSP Solution

Step 1: Modify the path between bspgeneratedlocation and sopcdesignfile

After the modification, the following warning messages are displayed, which is mainly because bspgeneratedtimstamp uses the Chinese time. Press Save As UTF-8 to save the information.

Step 2: Generate BSP again

The generate BSP line can be used to generate without any warning information.

BSP Project (hello_world_bsp) cannot parse the root cause of BSP Editor

The purpose of BSP editor is to modify some settings. BSP that are only related to the BSP project. BSP editor cannot parse rows because it cannot find *. sopcinfo. This is the root cause of 3rd questions.

BSP Project (hello_world_bsp) cannot parse the solution of BSP editor.

In the previous step, the path *. sopcinfo of settings. BSP has been modified. Therefore, this problem has been resolved and no other modifications are required.

Repeat the line BSP editor. Normally, there is no warning message in the response line.

Build app Project (hello_world) and BSP Project (hello_world_bsp) will show makefile cannot find the root cause of the warning system of the system file.

When app Project (hello_world) and BSP Project (hello_world_bsp) are built, the actual thing is to make the action, so you need to test makefile first, the main reason for the emergence of warning is that the makefile cannot be found *. sopcinfo. This is the root cause of 4th questions.

When you build an app Project (hello_world) and BSP Project (hello_world_bsp), The makefile cannot find the warning solution of the FPGA file.

In theory, the makefile should be modified, but when the generate BSP line is generated,Nios2-bsp-generate-filesThe settings. BSP File Modified by the root user has updated the makefile, so we do not have to manually modify the makefile.

Re-build the BSP Project (hello_world_bsp). You can use the build without any warning information.

Later, you can re-build the app Project (hello_world), or you can use the build without any warning information.

We also remember that when app Project (hello_world): Include path not found warning's solution, we only cleared the unique route entries included in the app project, however, the include statement has not been correctly corrected yet.

After the app Project (hello_world) is built, check C/C ++ general-> paths and symbols gnc c and gnc c ++ of the properties of hello_world, it will show that all the correct include paths are returned.

In the past, it was just because the root cause solution was required to solve the problem. In fact, the whole step is very simple, as long as five steps are required.

4. Questions about using the blank Project Method 

As long as you change the path of the niosii project, you can't solve the problem. In fact, I have discovered that when I used Quartus II 6.0, it should be said that the question of this workspace is doomed to be solved by many people (including myself) If niosii is to use eclipse) and [2] Asian peaks [Notes]. why is an error in compilation caused by drag-and-drop of files directly in the project folder in the nioii sbte? In the same way, all are re-opening a blank project, and then re-opening the required *. C ,*. drag and Drop CPP to the new blank project, and then modify makefile in hand. This solution can avoid include paths parameters and *. the problem about sopcinfo, but the settings. BSP and makefile are new, so you must manually check whether makefile is the same as the original project, and then manually modify the makefile.

The user source management in [1] Getting started with the graphical user interface p.2-11 has the following text:

Simply put, since you have used the niosii SBT, you should not manually modify the makefile. Instead, you should use the GUI or command line script method, tools should change your makefile without Manually changing it. The method used in this article, although I know that makefile has a problem, but according to the zookeeper of the niosii SBT, I used the GUI method and process of the niosii SBT to modify the makefile, there is no manual modification to makefile. In this way, you can determine the correctness of makefile, saving you a lot of effort on the original makefile.

Download the complete program
De2_70_sopc_golden_mini2.7z

Conclusion
The solution in this blog article is based on the summary made by Altera's official materials, and has learned a lot from the past, because this is a problem that has been difficult for many years, if you are also sleepy for the problem of the niosii project Road, you can refer to the solution in this article.

See also
(Formerly known) after modifying qsys or RTL, how should the Nios ii sbt face the new hardware? (SOC) (nio ii) (qsys)

Reference
[1] Getting started with the graphical user interface
[2] Asian peaks [note]. Why do compilation errors occur when you drag and drop files directly to the project folder in the nioii sbte?
[3] NiO II software build tools reference
[4] niosii software build tools

The full text is complete.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.