To start developing an application, you create a new project. To create a new project, do the following:

- From the File menu, click New then New Project...

The New Project dialog appears. This dialog displays the set of project types and project templates.

We'll create a project to develop our application in C:

- Click the Executable icon in the Templates pane which selects the type of project to add.
- Type `Tutorial` in the Name edit box, which names the project.
- You can use the Location edit box or the Browse button to locate where you want the project to be created.
- Click OK.

This will create a project for a generic ARM target that has RAM mapped at address 0x00000000, as we are going to run this example on the simulator this is fine. ARM hardware however is rarely so accommodating as memory will be mapped at different addresses, target specific startup code may be required to initialize peripherals, different techniques need to be employed to reset the target and target specific loader applications are required to program FLASH. To create a project to run on hardware you should instead select a template from the project type matching your target, this will create a project with the memory maps, startup code, reset script and FLASH loader for your target.

Once created, the project setup wizard prompts you to set some common options for the project.

Here you can specify an additional file format to be output when the application is linked, and what library support to include if you use printf and scanf. You can change these settings after the project is created using the Project Explorer.

Clicking Next displays the files that will be added to the project.

The Links to system files group shows the links that will be created in the project to CrossStudio system files. Project links are fully explained in Project management, and we can ignore these for now.

Clicking Next displays the configurations that will be added to the project.

Here you can specify the default configurations that will be added to the project. Project configurations are fully explained in Project management, and we can ignore these for now.

Complete the project creation by clicking Finish.

The Project Explorer shows the overall structure of your project. To see the project explorer, do one of the following:

- From the View menu, click Project Explorer.

—or—

- Type Ctrl+Alt+P.

—or—

- Right click the tool bar area.
- From the popup menu, select Project Explorer.

This is what our project looks like in the Project Explorer:

You'll notice that the project name is shown in bold which indicates that it is the active project (and in our case, the only project). If you have more than one project then you can set the active project using the dropdown box on the build tool bar or the context menu of the project explorer.

The files are arranged into two groups:

- Source Files contains the main source files for your application which will typically be header files, C files, and assembly code files. You may want to add files with other extensions or documentation files in HTML format, for instance.
- System Files contains links to source files that are not part of the project yet are required when the project is built and run. In this case, the system files are `crt0.s` which is the C runtime startup written in assembly code, `RAM_at_Zero_MemoryMap.xml` a memory map file that describes a target with RAM located at address 0x00000000, `sram_placement.xml` which directs the linker on how to arrange program sections in memory, `Standard_ARM_Startup.s` which contains the target specific start code and exception vectors and `Standard_ARM_Target.js` which contains the target specific target script which instructs the debugger on how to reset the target and what to do when the processor stops or starts. Files which are stored outside of the project’s home directory are shown by a small purple shortcut indicator at the bottom left of the icon, as above.

These folders have nothing to do with directories on disk, they are simply a means to group related files together in the project explorer. You can create new folders and specify filters based on the file extension so that when you add a new file to the project it will be placed in the folder whose filter matches the file extension.