In some case, modifying the example port to your own port might difficult, because it is difficulty to modify all the settings. I'm sharing my procedure to create a project from zero, hope it can help some one. Below are the procedure:
1> Create an empty project by the MPLab wizard, and choose the correct chip model.
2> Create main source file, main.c.
3> Copy the "Hardware" folder & "Source" folder & "FreeRTOSConfig.h" to the project folder, Add the folders to source folder, ProjectProperties-->XC16-->XC16-gcc-->Preprocessing and messages-->C include dirs, then include the "FreeRTOS.h", "task.h" and "queue.h", this time the compiler should build with no error.
4> Disable COROUTINES the in file "FreeRTOSConfig.h" by set the Micro configUSECOROUTINES to 0.
5> Create a new logic folder under the Source file, rename the folder to "FreeRTOS Source", and add heap4.c, list.c, port.c, portasmdsPIC.S, queue.c, tasks.c into this logic folder.
6> Define a empty function void vApplicationIdleHook( void ) in the main.c file. By now, the project should build with no error.
7> Define Micro for the port "MPLABDSPICPORT" ProjectProperties-->XC16-->XC16-gcc-->Preprocessing and messages-->Define C macros. Try to build the project again, if some include error appeared, modify the path to help compiler find the file. In my case, the compiler says "deprecateddefinitions.h:106:64: fatal error: ../../Source/portable/MPLAB/PIC24dsPIC/portmacro.h: No such file or directory". I just change the include statement from #include "../../Source/portable/MPLAB/PIC24dsPIC/portmacro.h" to #include "portmacro.h" then the build pass.
8> At last, we might need to uncheck the Use legacy libc option, Project_Properties-->XC16(Global Options)-->Use legacy libc. according to the help document this option:"Check to use libraries in the format before v3.25. Uncheck to use the new (HI-TECH) libraries format."
Thanks for these MPLAB specific details. They augment the 'generic' pages: