diff --git a/source/asserts/nucleistudio/advanceeusage/media/image10.png b/source/asserts/nucleistudio/advanceeusage/image10.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image10.png rename to source/asserts/nucleistudio/advanceeusage/image10.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image11.png b/source/asserts/nucleistudio/advanceeusage/image11.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image11.png rename to source/asserts/nucleistudio/advanceeusage/image11.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image12.png b/source/asserts/nucleistudio/advanceeusage/image12.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image12.png rename to source/asserts/nucleistudio/advanceeusage/image12.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image13.png b/source/asserts/nucleistudio/advanceeusage/image13.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image13.png rename to source/asserts/nucleistudio/advanceeusage/image13.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image14.png b/source/asserts/nucleistudio/advanceeusage/image14.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image14.png rename to source/asserts/nucleistudio/advanceeusage/image14.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image15.png b/source/asserts/nucleistudio/advanceeusage/image15.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image15.png rename to source/asserts/nucleistudio/advanceeusage/image15.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image16.png b/source/asserts/nucleistudio/advanceeusage/image16.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image16.png rename to source/asserts/nucleistudio/advanceeusage/image16.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image17.png b/source/asserts/nucleistudio/advanceeusage/image17.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image17.png rename to source/asserts/nucleistudio/advanceeusage/image17.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image18.png b/source/asserts/nucleistudio/advanceeusage/image18.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image18.png rename to source/asserts/nucleistudio/advanceeusage/image18.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image19.png b/source/asserts/nucleistudio/advanceeusage/image19.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image19.png rename to source/asserts/nucleistudio/advanceeusage/image19.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image2.png b/source/asserts/nucleistudio/advanceeusage/image2.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image2.png rename to source/asserts/nucleistudio/advanceeusage/image2.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image20.png b/source/asserts/nucleistudio/advanceeusage/image20.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image20.png rename to source/asserts/nucleistudio/advanceeusage/image20.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image21.png b/source/asserts/nucleistudio/advanceeusage/image21.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image21.png rename to source/asserts/nucleistudio/advanceeusage/image21.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image22.png b/source/asserts/nucleistudio/advanceeusage/image22.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image22.png rename to source/asserts/nucleistudio/advanceeusage/image22.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image23.png b/source/asserts/nucleistudio/advanceeusage/image23.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image23.png rename to source/asserts/nucleistudio/advanceeusage/image23.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image24.png b/source/asserts/nucleistudio/advanceeusage/image24.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image24.png rename to source/asserts/nucleistudio/advanceeusage/image24.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image25.png b/source/asserts/nucleistudio/advanceeusage/image25.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image25.png rename to source/asserts/nucleistudio/advanceeusage/image25.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image26.png b/source/asserts/nucleistudio/advanceeusage/image26.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image26.png rename to source/asserts/nucleistudio/advanceeusage/image26.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image27.png b/source/asserts/nucleistudio/advanceeusage/image27.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image27.png rename to source/asserts/nucleistudio/advanceeusage/image27.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image28.png b/source/asserts/nucleistudio/advanceeusage/image28.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image28.png rename to source/asserts/nucleistudio/advanceeusage/image28.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image29.png b/source/asserts/nucleistudio/advanceeusage/image29.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image29.png rename to source/asserts/nucleistudio/advanceeusage/image29.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image3.png b/source/asserts/nucleistudio/advanceeusage/image3.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image3.png rename to source/asserts/nucleistudio/advanceeusage/image3.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image30.png b/source/asserts/nucleistudio/advanceeusage/image30.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image30.png rename to source/asserts/nucleistudio/advanceeusage/image30.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image31.png b/source/asserts/nucleistudio/advanceeusage/image31.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image31.png rename to source/asserts/nucleistudio/advanceeusage/image31.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image32.png b/source/asserts/nucleistudio/advanceeusage/image32.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image32.png rename to source/asserts/nucleistudio/advanceeusage/image32.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image33.png b/source/asserts/nucleistudio/advanceeusage/image33.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image33.png rename to source/asserts/nucleistudio/advanceeusage/image33.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image34.png b/source/asserts/nucleistudio/advanceeusage/image34.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image34.png rename to source/asserts/nucleistudio/advanceeusage/image34.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image35.png b/source/asserts/nucleistudio/advanceeusage/image35.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image35.png rename to source/asserts/nucleistudio/advanceeusage/image35.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image36.png b/source/asserts/nucleistudio/advanceeusage/image36.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image36.png rename to source/asserts/nucleistudio/advanceeusage/image36.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image37.png b/source/asserts/nucleistudio/advanceeusage/image37.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image37.png rename to source/asserts/nucleistudio/advanceeusage/image37.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image38.png b/source/asserts/nucleistudio/advanceeusage/image38.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image38.png rename to source/asserts/nucleistudio/advanceeusage/image38.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image39.png b/source/asserts/nucleistudio/advanceeusage/image39.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image39.png rename to source/asserts/nucleistudio/advanceeusage/image39.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image4.png b/source/asserts/nucleistudio/advanceeusage/image4.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image4.png rename to source/asserts/nucleistudio/advanceeusage/image4.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image40.png b/source/asserts/nucleistudio/advanceeusage/image40.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image40.png rename to source/asserts/nucleistudio/advanceeusage/image40.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image41.png b/source/asserts/nucleistudio/advanceeusage/image41.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image41.png rename to source/asserts/nucleistudio/advanceeusage/image41.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image42.png b/source/asserts/nucleistudio/advanceeusage/image42.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image42.png rename to source/asserts/nucleistudio/advanceeusage/image42.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image43.png b/source/asserts/nucleistudio/advanceeusage/image43.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image43.png rename to source/asserts/nucleistudio/advanceeusage/image43.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image44.png b/source/asserts/nucleistudio/advanceeusage/image44.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image44.png rename to source/asserts/nucleistudio/advanceeusage/image44.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image45.png b/source/asserts/nucleistudio/advanceeusage/image45.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image45.png rename to source/asserts/nucleistudio/advanceeusage/image45.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image46.png b/source/asserts/nucleistudio/advanceeusage/image46.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image46.png rename to source/asserts/nucleistudio/advanceeusage/image46.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image47.png b/source/asserts/nucleistudio/advanceeusage/image47.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image47.png rename to source/asserts/nucleistudio/advanceeusage/image47.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image48.png b/source/asserts/nucleistudio/advanceeusage/image48.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image48.png rename to source/asserts/nucleistudio/advanceeusage/image48.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image49.png b/source/asserts/nucleistudio/advanceeusage/image49.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image49.png rename to source/asserts/nucleistudio/advanceeusage/image49.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image5.png b/source/asserts/nucleistudio/advanceeusage/image5.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image5.png rename to source/asserts/nucleistudio/advanceeusage/image5.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image50.png b/source/asserts/nucleistudio/advanceeusage/image50.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image50.png rename to source/asserts/nucleistudio/advanceeusage/image50.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image51.png b/source/asserts/nucleistudio/advanceeusage/image51.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image51.png rename to source/asserts/nucleistudio/advanceeusage/image51.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image52.png b/source/asserts/nucleistudio/advanceeusage/image52.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image52.png rename to source/asserts/nucleistudio/advanceeusage/image52.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image53.png b/source/asserts/nucleistudio/advanceeusage/image53.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image53.png rename to source/asserts/nucleistudio/advanceeusage/image53.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image54.png b/source/asserts/nucleistudio/advanceeusage/image54.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image54.png rename to source/asserts/nucleistudio/advanceeusage/image54.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image55.png b/source/asserts/nucleistudio/advanceeusage/image55.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image55.png rename to source/asserts/nucleistudio/advanceeusage/image55.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image56.png b/source/asserts/nucleistudio/advanceeusage/image56.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image56.png rename to source/asserts/nucleistudio/advanceeusage/image56.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image57.png b/source/asserts/nucleistudio/advanceeusage/image57.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image57.png rename to source/asserts/nucleistudio/advanceeusage/image57.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image58.png b/source/asserts/nucleistudio/advanceeusage/image58.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image58.png rename to source/asserts/nucleistudio/advanceeusage/image58.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image59.png b/source/asserts/nucleistudio/advanceeusage/image59.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image59.png rename to source/asserts/nucleistudio/advanceeusage/image59.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image6.png b/source/asserts/nucleistudio/advanceeusage/image6.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image6.png rename to source/asserts/nucleistudio/advanceeusage/image6.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image60.png b/source/asserts/nucleistudio/advanceeusage/image60.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image60.png rename to source/asserts/nucleistudio/advanceeusage/image60.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image61.png b/source/asserts/nucleistudio/advanceeusage/image61.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image61.png rename to source/asserts/nucleistudio/advanceeusage/image61.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image62.png b/source/asserts/nucleistudio/advanceeusage/image62.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image62.png rename to source/asserts/nucleistudio/advanceeusage/image62.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image63.png b/source/asserts/nucleistudio/advanceeusage/image63.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image63.png rename to source/asserts/nucleistudio/advanceeusage/image63.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image64.png b/source/asserts/nucleistudio/advanceeusage/image64.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image64.png rename to source/asserts/nucleistudio/advanceeusage/image64.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image65.png b/source/asserts/nucleistudio/advanceeusage/image65.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image65.png rename to source/asserts/nucleistudio/advanceeusage/image65.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image66.png b/source/asserts/nucleistudio/advanceeusage/image66.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image66.png rename to source/asserts/nucleistudio/advanceeusage/image66.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image67.png b/source/asserts/nucleistudio/advanceeusage/image67.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image67.png rename to source/asserts/nucleistudio/advanceeusage/image67.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image68.png b/source/asserts/nucleistudio/advanceeusage/image68.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image68.png rename to source/asserts/nucleistudio/advanceeusage/image68.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image69.png b/source/asserts/nucleistudio/advanceeusage/image69.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image69.png rename to source/asserts/nucleistudio/advanceeusage/image69.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image7.png b/source/asserts/nucleistudio/advanceeusage/image7.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image7.png rename to source/asserts/nucleistudio/advanceeusage/image7.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image70.png b/source/asserts/nucleistudio/advanceeusage/image70.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image70.png rename to source/asserts/nucleistudio/advanceeusage/image70.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image71.png b/source/asserts/nucleistudio/advanceeusage/image71.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image71.png rename to source/asserts/nucleistudio/advanceeusage/image71.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image72.png b/source/asserts/nucleistudio/advanceeusage/image72.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image72.png rename to source/asserts/nucleistudio/advanceeusage/image72.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image73.png b/source/asserts/nucleistudio/advanceeusage/image73.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image73.png rename to source/asserts/nucleistudio/advanceeusage/image73.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image74.png b/source/asserts/nucleistudio/advanceeusage/image74.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image74.png rename to source/asserts/nucleistudio/advanceeusage/image74.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image75.png b/source/asserts/nucleistudio/advanceeusage/image75.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image75.png rename to source/asserts/nucleistudio/advanceeusage/image75.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image76.png b/source/asserts/nucleistudio/advanceeusage/image76.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image76.png rename to source/asserts/nucleistudio/advanceeusage/image76.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image77.png b/source/asserts/nucleistudio/advanceeusage/image77.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image77.png rename to source/asserts/nucleistudio/advanceeusage/image77.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image78.png b/source/asserts/nucleistudio/advanceeusage/image78.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image78.png rename to source/asserts/nucleistudio/advanceeusage/image78.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image79.png b/source/asserts/nucleistudio/advanceeusage/image79.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image79.png rename to source/asserts/nucleistudio/advanceeusage/image79.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image8.png b/source/asserts/nucleistudio/advanceeusage/image8.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image8.png rename to source/asserts/nucleistudio/advanceeusage/image8.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image80.png b/source/asserts/nucleistudio/advanceeusage/image80.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image80.png rename to source/asserts/nucleistudio/advanceeusage/image80.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image81.png b/source/asserts/nucleistudio/advanceeusage/image81.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image81.png rename to source/asserts/nucleistudio/advanceeusage/image81.png diff --git a/source/asserts/nucleistudio/advanceeusage/media/image9.png b/source/asserts/nucleistudio/advanceeusage/image9.png similarity index 100% rename from source/asserts/nucleistudio/advanceeusage/media/image9.png rename to source/asserts/nucleistudio/advanceeusage/image9.png diff --git a/source/asserts/nucleistudio/debug/media/image10.png b/source/asserts/nucleistudio/debug/image10.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image10.png rename to source/asserts/nucleistudio/debug/image10.png diff --git a/source/asserts/nucleistudio/debug/media/image11.png b/source/asserts/nucleistudio/debug/image11.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image11.png rename to source/asserts/nucleistudio/debug/image11.png diff --git a/source/asserts/nucleistudio/debug/media/image12.png b/source/asserts/nucleistudio/debug/image12.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image12.png rename to source/asserts/nucleistudio/debug/image12.png diff --git a/source/asserts/nucleistudio/debug/media/image13.png b/source/asserts/nucleistudio/debug/image13.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image13.png rename to source/asserts/nucleistudio/debug/image13.png diff --git a/source/asserts/nucleistudio/debug/media/image14.png b/source/asserts/nucleistudio/debug/image14.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image14.png rename to source/asserts/nucleistudio/debug/image14.png diff --git a/source/asserts/nucleistudio/debug/media/image15.png b/source/asserts/nucleistudio/debug/image15.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image15.png rename to source/asserts/nucleistudio/debug/image15.png diff --git a/source/asserts/nucleistudio/debug/media/image16.png b/source/asserts/nucleistudio/debug/image16.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image16.png rename to source/asserts/nucleistudio/debug/image16.png diff --git a/source/asserts/nucleistudio/debug/media/image17.png b/source/asserts/nucleistudio/debug/image17.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image17.png rename to source/asserts/nucleistudio/debug/image17.png diff --git a/source/asserts/nucleistudio/debug/media/image18.png b/source/asserts/nucleistudio/debug/image18.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image18.png rename to source/asserts/nucleistudio/debug/image18.png diff --git a/source/asserts/nucleistudio/debug/media/image19.png b/source/asserts/nucleistudio/debug/image19.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image19.png rename to source/asserts/nucleistudio/debug/image19.png diff --git a/source/asserts/nucleistudio/debug/media/image2.png b/source/asserts/nucleistudio/debug/image2.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image2.png rename to source/asserts/nucleistudio/debug/image2.png diff --git a/source/asserts/nucleistudio/debug/media/image20.png b/source/asserts/nucleistudio/debug/image20.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image20.png rename to source/asserts/nucleistudio/debug/image20.png diff --git a/source/asserts/nucleistudio/debug/media/image21.png b/source/asserts/nucleistudio/debug/image21.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image21.png rename to source/asserts/nucleistudio/debug/image21.png diff --git a/source/asserts/nucleistudio/debug/media/image22.png b/source/asserts/nucleistudio/debug/image22.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image22.png rename to source/asserts/nucleistudio/debug/image22.png diff --git a/source/asserts/nucleistudio/debug/media/image23.png b/source/asserts/nucleistudio/debug/image23.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image23.png rename to source/asserts/nucleistudio/debug/image23.png diff --git a/source/asserts/nucleistudio/debug/media/image24.png b/source/asserts/nucleistudio/debug/image24.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image24.png rename to source/asserts/nucleistudio/debug/image24.png diff --git a/source/asserts/nucleistudio/debug/media/image25.png b/source/asserts/nucleistudio/debug/image25.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image25.png rename to source/asserts/nucleistudio/debug/image25.png diff --git a/source/asserts/nucleistudio/debug/media/image26.png b/source/asserts/nucleistudio/debug/image26.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image26.png rename to source/asserts/nucleistudio/debug/image26.png diff --git a/source/asserts/nucleistudio/debug/media/image27.png b/source/asserts/nucleistudio/debug/image27.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image27.png rename to source/asserts/nucleistudio/debug/image27.png diff --git a/source/asserts/nucleistudio/debug/media/image28.png b/source/asserts/nucleistudio/debug/image28.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image28.png rename to source/asserts/nucleistudio/debug/image28.png diff --git a/source/asserts/nucleistudio/debug/media/image29.png b/source/asserts/nucleistudio/debug/image29.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image29.png rename to source/asserts/nucleistudio/debug/image29.png diff --git a/source/asserts/nucleistudio/debug/media/image3.png b/source/asserts/nucleistudio/debug/image3.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image3.png rename to source/asserts/nucleistudio/debug/image3.png diff --git a/source/asserts/nucleistudio/debug/media/image30.png b/source/asserts/nucleistudio/debug/image30.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image30.png rename to source/asserts/nucleistudio/debug/image30.png diff --git a/source/asserts/nucleistudio/debug/media/image31.png b/source/asserts/nucleistudio/debug/image31.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image31.png rename to source/asserts/nucleistudio/debug/image31.png diff --git a/source/asserts/nucleistudio/debug/media/image32.png b/source/asserts/nucleistudio/debug/image32.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image32.png rename to source/asserts/nucleistudio/debug/image32.png diff --git a/source/asserts/nucleistudio/debug/media/image33.png b/source/asserts/nucleistudio/debug/image33.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image33.png rename to source/asserts/nucleistudio/debug/image33.png diff --git a/source/asserts/nucleistudio/debug/media/image34.png b/source/asserts/nucleistudio/debug/image34.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image34.png rename to source/asserts/nucleistudio/debug/image34.png diff --git a/source/asserts/nucleistudio/debug/media/image35.png b/source/asserts/nucleistudio/debug/image35.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image35.png rename to source/asserts/nucleistudio/debug/image35.png diff --git a/source/asserts/nucleistudio/debug/media/image36.png b/source/asserts/nucleistudio/debug/image36.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image36.png rename to source/asserts/nucleistudio/debug/image36.png diff --git a/source/asserts/nucleistudio/debug/media/image37.png b/source/asserts/nucleistudio/debug/image37.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image37.png rename to source/asserts/nucleistudio/debug/image37.png diff --git a/source/asserts/nucleistudio/debug/media/image38.png b/source/asserts/nucleistudio/debug/image38.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image38.png rename to source/asserts/nucleistudio/debug/image38.png diff --git a/source/asserts/nucleistudio/debug/media/image39.png b/source/asserts/nucleistudio/debug/image39.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image39.png rename to source/asserts/nucleistudio/debug/image39.png diff --git a/source/asserts/nucleistudio/debug/media/image4.png b/source/asserts/nucleistudio/debug/image4.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image4.png rename to source/asserts/nucleistudio/debug/image4.png diff --git a/source/asserts/nucleistudio/debug/media/image40.png b/source/asserts/nucleistudio/debug/image40.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image40.png rename to source/asserts/nucleistudio/debug/image40.png diff --git a/source/asserts/nucleistudio/debug/media/image41.png b/source/asserts/nucleistudio/debug/image41.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image41.png rename to source/asserts/nucleistudio/debug/image41.png diff --git a/source/asserts/nucleistudio/debug/media/image42.png b/source/asserts/nucleistudio/debug/image42.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image42.png rename to source/asserts/nucleistudio/debug/image42.png diff --git a/source/asserts/nucleistudio/debug/media/image43.png b/source/asserts/nucleistudio/debug/image43.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image43.png rename to source/asserts/nucleistudio/debug/image43.png diff --git a/source/asserts/nucleistudio/debug/media/image44.png b/source/asserts/nucleistudio/debug/image44.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image44.png rename to source/asserts/nucleistudio/debug/image44.png diff --git a/source/asserts/nucleistudio/debug/media/image45.png b/source/asserts/nucleistudio/debug/image45.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image45.png rename to source/asserts/nucleistudio/debug/image45.png diff --git a/source/asserts/nucleistudio/debug/media/image46.png b/source/asserts/nucleistudio/debug/image46.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image46.png rename to source/asserts/nucleistudio/debug/image46.png diff --git a/source/asserts/nucleistudio/debug/media/image47.png b/source/asserts/nucleistudio/debug/image47.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image47.png rename to source/asserts/nucleistudio/debug/image47.png diff --git a/source/asserts/nucleistudio/debug/media/image48.png b/source/asserts/nucleistudio/debug/image48.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image48.png rename to source/asserts/nucleistudio/debug/image48.png diff --git a/source/asserts/nucleistudio/debug/media/image49.png b/source/asserts/nucleistudio/debug/image49.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image49.png rename to source/asserts/nucleistudio/debug/image49.png diff --git a/source/asserts/nucleistudio/debug/media/image5.png b/source/asserts/nucleistudio/debug/image5.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image5.png rename to source/asserts/nucleistudio/debug/image5.png diff --git a/source/asserts/nucleistudio/debug/media/image50.png b/source/asserts/nucleistudio/debug/image50.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image50.png rename to source/asserts/nucleistudio/debug/image50.png diff --git a/source/asserts/nucleistudio/debug/media/image51.png b/source/asserts/nucleistudio/debug/image51.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image51.png rename to source/asserts/nucleistudio/debug/image51.png diff --git a/source/asserts/nucleistudio/debug/media/image52.png b/source/asserts/nucleistudio/debug/image52.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image52.png rename to source/asserts/nucleistudio/debug/image52.png diff --git a/source/asserts/nucleistudio/debug/media/image53.png b/source/asserts/nucleistudio/debug/image53.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image53.png rename to source/asserts/nucleistudio/debug/image53.png diff --git a/source/asserts/nucleistudio/debug/media/image54.png b/source/asserts/nucleistudio/debug/image54.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image54.png rename to source/asserts/nucleistudio/debug/image54.png diff --git a/source/asserts/nucleistudio/debug/media/image55.png b/source/asserts/nucleistudio/debug/image55.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image55.png rename to source/asserts/nucleistudio/debug/image55.png diff --git a/source/asserts/nucleistudio/debug/media/image56.png b/source/asserts/nucleistudio/debug/image56.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image56.png rename to source/asserts/nucleistudio/debug/image56.png diff --git a/source/asserts/nucleistudio/debug/media/image57.png b/source/asserts/nucleistudio/debug/image57.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image57.png rename to source/asserts/nucleistudio/debug/image57.png diff --git a/source/asserts/nucleistudio/debug/media/image58.png b/source/asserts/nucleistudio/debug/image58.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image58.png rename to source/asserts/nucleistudio/debug/image58.png diff --git a/source/asserts/nucleistudio/debug/media/image59.png b/source/asserts/nucleistudio/debug/image59.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image59.png rename to source/asserts/nucleistudio/debug/image59.png diff --git a/source/asserts/nucleistudio/debug/media/image6.png b/source/asserts/nucleistudio/debug/image6.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image6.png rename to source/asserts/nucleistudio/debug/image6.png diff --git a/source/asserts/nucleistudio/debug/media/image60.png b/source/asserts/nucleistudio/debug/image60.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image60.png rename to source/asserts/nucleistudio/debug/image60.png diff --git a/source/asserts/nucleistudio/debug/media/image61.png b/source/asserts/nucleistudio/debug/image61.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image61.png rename to source/asserts/nucleistudio/debug/image61.png diff --git a/source/asserts/nucleistudio/debug/media/image62.png b/source/asserts/nucleistudio/debug/image62.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image62.png rename to source/asserts/nucleistudio/debug/image62.png diff --git a/source/asserts/nucleistudio/debug/media/image63.png b/source/asserts/nucleistudio/debug/image63.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image63.png rename to source/asserts/nucleistudio/debug/image63.png diff --git a/source/asserts/nucleistudio/debug/media/image64.png b/source/asserts/nucleistudio/debug/image64.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image64.png rename to source/asserts/nucleistudio/debug/image64.png diff --git a/source/asserts/nucleistudio/debug/media/image7.png b/source/asserts/nucleistudio/debug/image7.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image7.png rename to source/asserts/nucleistudio/debug/image7.png diff --git a/source/asserts/nucleistudio/debug/media/image8.png b/source/asserts/nucleistudio/debug/image8.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image8.png rename to source/asserts/nucleistudio/debug/image8.png diff --git a/source/asserts/nucleistudio/debug/media/image9.png b/source/asserts/nucleistudio/debug/image9.png similarity index 100% rename from source/asserts/nucleistudio/debug/media/image9.png rename to source/asserts/nucleistudio/debug/image9.png diff --git a/source/asserts/nucleistudio/faq/media/image10.png b/source/asserts/nucleistudio/faq/image10.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image10.png rename to source/asserts/nucleistudio/faq/image10.png diff --git a/source/asserts/nucleistudio/faq/media/image11.png b/source/asserts/nucleistudio/faq/image11.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image11.png rename to source/asserts/nucleistudio/faq/image11.png diff --git a/source/asserts/nucleistudio/faq/media/image12.png b/source/asserts/nucleistudio/faq/image12.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image12.png rename to source/asserts/nucleistudio/faq/image12.png diff --git a/source/asserts/nucleistudio/faq/media/image13.png b/source/asserts/nucleistudio/faq/image13.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image13.png rename to source/asserts/nucleistudio/faq/image13.png diff --git a/source/asserts/nucleistudio/faq/media/image14.png b/source/asserts/nucleistudio/faq/image14.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image14.png rename to source/asserts/nucleistudio/faq/image14.png diff --git a/source/asserts/nucleistudio/faq/media/image15.png b/source/asserts/nucleistudio/faq/image15.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image15.png rename to source/asserts/nucleistudio/faq/image15.png diff --git a/source/asserts/nucleistudio/faq/media/image16.png b/source/asserts/nucleistudio/faq/image16.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image16.png rename to source/asserts/nucleistudio/faq/image16.png diff --git a/source/asserts/nucleistudio/faq/media/image17.png b/source/asserts/nucleistudio/faq/image17.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image17.png rename to source/asserts/nucleistudio/faq/image17.png diff --git a/source/asserts/nucleistudio/faq/media/image18.png b/source/asserts/nucleistudio/faq/image18.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image18.png rename to source/asserts/nucleistudio/faq/image18.png diff --git a/source/asserts/nucleistudio/faq/media/image19.png b/source/asserts/nucleistudio/faq/image19.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image19.png rename to source/asserts/nucleistudio/faq/image19.png diff --git a/source/asserts/nucleistudio/faq/media/image2.png b/source/asserts/nucleistudio/faq/image2.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image2.png rename to source/asserts/nucleistudio/faq/image2.png diff --git a/source/asserts/nucleistudio/faq/media/image20.png b/source/asserts/nucleistudio/faq/image20.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image20.png rename to source/asserts/nucleistudio/faq/image20.png diff --git a/source/asserts/nucleistudio/faq/media/image21.png b/source/asserts/nucleistudio/faq/image21.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image21.png rename to source/asserts/nucleistudio/faq/image21.png diff --git a/source/asserts/nucleistudio/faq/media/image22.png b/source/asserts/nucleistudio/faq/image22.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image22.png rename to source/asserts/nucleistudio/faq/image22.png diff --git a/source/asserts/nucleistudio/faq/media/image23.png b/source/asserts/nucleistudio/faq/image23.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image23.png rename to source/asserts/nucleistudio/faq/image23.png diff --git a/source/asserts/nucleistudio/faq/media/image24.png b/source/asserts/nucleistudio/faq/image24.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image24.png rename to source/asserts/nucleistudio/faq/image24.png diff --git a/source/asserts/nucleistudio/faq/media/image25.png b/source/asserts/nucleistudio/faq/image25.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image25.png rename to source/asserts/nucleistudio/faq/image25.png diff --git a/source/asserts/nucleistudio/faq/media/image26.png b/source/asserts/nucleistudio/faq/image26.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image26.png rename to source/asserts/nucleistudio/faq/image26.png diff --git a/source/asserts/nucleistudio/faq/media/image27.png b/source/asserts/nucleistudio/faq/image27.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image27.png rename to source/asserts/nucleistudio/faq/image27.png diff --git a/source/asserts/nucleistudio/faq/media/image28.png b/source/asserts/nucleistudio/faq/image28.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image28.png rename to source/asserts/nucleistudio/faq/image28.png diff --git a/source/asserts/nucleistudio/faq/media/image29.png b/source/asserts/nucleistudio/faq/image29.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image29.png rename to source/asserts/nucleistudio/faq/image29.png diff --git a/source/asserts/nucleistudio/faq/media/image3.png b/source/asserts/nucleistudio/faq/image3.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image3.png rename to source/asserts/nucleistudio/faq/image3.png diff --git a/source/asserts/nucleistudio/faq/media/image30.png b/source/asserts/nucleistudio/faq/image30.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image30.png rename to source/asserts/nucleistudio/faq/image30.png diff --git a/source/asserts/nucleistudio/faq/media/image31.png b/source/asserts/nucleistudio/faq/image31.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image31.png rename to source/asserts/nucleistudio/faq/image31.png diff --git a/source/asserts/nucleistudio/faq/media/image32.png b/source/asserts/nucleistudio/faq/image32.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image32.png rename to source/asserts/nucleistudio/faq/image32.png diff --git a/source/asserts/nucleistudio/faq/media/image33.png b/source/asserts/nucleistudio/faq/image33.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image33.png rename to source/asserts/nucleistudio/faq/image33.png diff --git a/source/asserts/nucleistudio/faq/media/image34.png b/source/asserts/nucleistudio/faq/image34.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image34.png rename to source/asserts/nucleistudio/faq/image34.png diff --git a/source/asserts/nucleistudio/faq/media/image35.png b/source/asserts/nucleistudio/faq/image35.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image35.png rename to source/asserts/nucleistudio/faq/image35.png diff --git a/source/asserts/nucleistudio/faq/media/image36.png b/source/asserts/nucleistudio/faq/image36.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image36.png rename to source/asserts/nucleistudio/faq/image36.png diff --git a/source/asserts/nucleistudio/faq/media/image37.png b/source/asserts/nucleistudio/faq/image37.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image37.png rename to source/asserts/nucleistudio/faq/image37.png diff --git a/source/asserts/nucleistudio/faq/media/image38.png b/source/asserts/nucleistudio/faq/image38.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image38.png rename to source/asserts/nucleistudio/faq/image38.png diff --git a/source/asserts/nucleistudio/faq/media/image39.png b/source/asserts/nucleistudio/faq/image39.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image39.png rename to source/asserts/nucleistudio/faq/image39.png diff --git a/source/asserts/nucleistudio/faq/media/image4.png b/source/asserts/nucleistudio/faq/image4.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image4.png rename to source/asserts/nucleistudio/faq/image4.png diff --git a/source/asserts/nucleistudio/faq/media/image40.png b/source/asserts/nucleistudio/faq/image40.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image40.png rename to source/asserts/nucleistudio/faq/image40.png diff --git a/source/asserts/nucleistudio/faq/media/image41.png b/source/asserts/nucleistudio/faq/image41.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image41.png rename to source/asserts/nucleistudio/faq/image41.png diff --git a/source/asserts/nucleistudio/faq/media/image42.png b/source/asserts/nucleistudio/faq/image42.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image42.png rename to source/asserts/nucleistudio/faq/image42.png diff --git a/source/asserts/nucleistudio/faq/media/image43.png b/source/asserts/nucleistudio/faq/image43.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image43.png rename to source/asserts/nucleistudio/faq/image43.png diff --git a/source/asserts/nucleistudio/faq/media/image5.png b/source/asserts/nucleistudio/faq/image5.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image5.png rename to source/asserts/nucleistudio/faq/image5.png diff --git a/source/asserts/nucleistudio/faq/media/image6.png b/source/asserts/nucleistudio/faq/image6.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image6.png rename to source/asserts/nucleistudio/faq/image6.png diff --git a/source/asserts/nucleistudio/faq/media/image7.png b/source/asserts/nucleistudio/faq/image7.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image7.png rename to source/asserts/nucleistudio/faq/image7.png diff --git a/source/asserts/nucleistudio/faq/media/image8.png b/source/asserts/nucleistudio/faq/image8.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image8.png rename to source/asserts/nucleistudio/faq/image8.png diff --git a/source/asserts/nucleistudio/faq/media/image9.png b/source/asserts/nucleistudio/faq/image9.png similarity index 100% rename from source/asserts/nucleistudio/faq/media/image9.png rename to source/asserts/nucleistudio/faq/image9.png diff --git a/source/asserts/nucleistudio/intro/media/image10.png b/source/asserts/nucleistudio/intro/image10.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image10.png rename to source/asserts/nucleistudio/intro/image10.png diff --git a/source/asserts/nucleistudio/intro/media/image11.png b/source/asserts/nucleistudio/intro/image11.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image11.png rename to source/asserts/nucleistudio/intro/image11.png diff --git a/source/asserts/nucleistudio/intro/media/image12.png b/source/asserts/nucleistudio/intro/image12.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image12.png rename to source/asserts/nucleistudio/intro/image12.png diff --git a/source/asserts/nucleistudio/intro/media/image13.png b/source/asserts/nucleistudio/intro/image13.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image13.png rename to source/asserts/nucleistudio/intro/image13.png diff --git a/source/asserts/nucleistudio/intro/media/image14.png b/source/asserts/nucleistudio/intro/image14.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image14.png rename to source/asserts/nucleistudio/intro/image14.png diff --git a/source/asserts/nucleistudio/intro/media/image15.png b/source/asserts/nucleistudio/intro/image15.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image15.png rename to source/asserts/nucleistudio/intro/image15.png diff --git a/source/asserts/nucleistudio/intro/media/image16.png b/source/asserts/nucleistudio/intro/image16.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image16.png rename to source/asserts/nucleistudio/intro/image16.png diff --git a/source/asserts/nucleistudio/intro/media/image17.png b/source/asserts/nucleistudio/intro/image17.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image17.png rename to source/asserts/nucleistudio/intro/image17.png diff --git a/source/asserts/nucleistudio/intro/media/image18.png b/source/asserts/nucleistudio/intro/image18.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image18.png rename to source/asserts/nucleistudio/intro/image18.png diff --git a/source/asserts/nucleistudio/intro/media/image19.png b/source/asserts/nucleistudio/intro/image19.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image19.png rename to source/asserts/nucleistudio/intro/image19.png diff --git a/source/asserts/nucleistudio/intro/media/image2.png b/source/asserts/nucleistudio/intro/image2.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image2.png rename to source/asserts/nucleistudio/intro/image2.png diff --git a/source/asserts/nucleistudio/intro/media/image20.png b/source/asserts/nucleistudio/intro/image20.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image20.png rename to source/asserts/nucleistudio/intro/image20.png diff --git a/source/asserts/nucleistudio/intro/media/image21.png b/source/asserts/nucleistudio/intro/image21.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image21.png rename to source/asserts/nucleistudio/intro/image21.png diff --git a/source/asserts/nucleistudio/intro/media/image22.png b/source/asserts/nucleistudio/intro/image22.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image22.png rename to source/asserts/nucleistudio/intro/image22.png diff --git a/source/asserts/nucleistudio/intro/media/image23.png b/source/asserts/nucleistudio/intro/image23.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image23.png rename to source/asserts/nucleistudio/intro/image23.png diff --git a/source/asserts/nucleistudio/intro/media/image24.png b/source/asserts/nucleistudio/intro/image24.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image24.png rename to source/asserts/nucleistudio/intro/image24.png diff --git a/source/asserts/nucleistudio/intro/media/image25.png b/source/asserts/nucleistudio/intro/image25.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image25.png rename to source/asserts/nucleistudio/intro/image25.png diff --git a/source/asserts/nucleistudio/intro/media/image3.png b/source/asserts/nucleistudio/intro/image3.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image3.png rename to source/asserts/nucleistudio/intro/image3.png diff --git a/source/asserts/nucleistudio/intro/media/image4.png b/source/asserts/nucleistudio/intro/image4.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image4.png rename to source/asserts/nucleistudio/intro/image4.png diff --git a/source/asserts/nucleistudio/intro/media/image5.png b/source/asserts/nucleistudio/intro/image5.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image5.png rename to source/asserts/nucleistudio/intro/image5.png diff --git a/source/asserts/nucleistudio/intro/media/image6.png b/source/asserts/nucleistudio/intro/image6.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image6.png rename to source/asserts/nucleistudio/intro/image6.png diff --git a/source/asserts/nucleistudio/intro/media/image7.png b/source/asserts/nucleistudio/intro/image7.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image7.png rename to source/asserts/nucleistudio/intro/image7.png diff --git a/source/asserts/nucleistudio/intro/media/image8.png b/source/asserts/nucleistudio/intro/image8.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image8.png rename to source/asserts/nucleistudio/intro/image8.png diff --git a/source/asserts/nucleistudio/intro/media/image9.png b/source/asserts/nucleistudio/intro/image9.png similarity index 100% rename from source/asserts/nucleistudio/intro/media/image9.png rename to source/asserts/nucleistudio/intro/image9.png diff --git a/source/asserts/nucleistudio/npk/media/image10.png b/source/asserts/nucleistudio/npk/image10.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image10.png rename to source/asserts/nucleistudio/npk/image10.png diff --git a/source/asserts/nucleistudio/npk/media/image11.png b/source/asserts/nucleistudio/npk/image11.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image11.png rename to source/asserts/nucleistudio/npk/image11.png diff --git a/source/asserts/nucleistudio/npk/media/image12.png b/source/asserts/nucleistudio/npk/image12.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image12.png rename to source/asserts/nucleistudio/npk/image12.png diff --git a/source/asserts/nucleistudio/npk/media/image13.png b/source/asserts/nucleistudio/npk/image13.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image13.png rename to source/asserts/nucleistudio/npk/image13.png diff --git a/source/asserts/nucleistudio/npk/media/image14.png b/source/asserts/nucleistudio/npk/image14.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image14.png rename to source/asserts/nucleistudio/npk/image14.png diff --git a/source/asserts/nucleistudio/npk/media/image15.png b/source/asserts/nucleistudio/npk/image15.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image15.png rename to source/asserts/nucleistudio/npk/image15.png diff --git a/source/asserts/nucleistudio/npk/media/image16.png b/source/asserts/nucleistudio/npk/image16.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image16.png rename to source/asserts/nucleistudio/npk/image16.png diff --git a/source/asserts/nucleistudio/npk/media/image17.png b/source/asserts/nucleistudio/npk/image17.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image17.png rename to source/asserts/nucleistudio/npk/image17.png diff --git a/source/asserts/nucleistudio/npk/media/image18.png b/source/asserts/nucleistudio/npk/image18.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image18.png rename to source/asserts/nucleistudio/npk/image18.png diff --git a/source/asserts/nucleistudio/npk/media/image19.png b/source/asserts/nucleistudio/npk/image19.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image19.png rename to source/asserts/nucleistudio/npk/image19.png diff --git a/source/asserts/nucleistudio/npk/media/image2.png b/source/asserts/nucleistudio/npk/image2.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image2.png rename to source/asserts/nucleistudio/npk/image2.png diff --git a/source/asserts/nucleistudio/npk/media/image3.png b/source/asserts/nucleistudio/npk/image3.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image3.png rename to source/asserts/nucleistudio/npk/image3.png diff --git a/source/asserts/nucleistudio/npk/media/image4.png b/source/asserts/nucleistudio/npk/image4.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image4.png rename to source/asserts/nucleistudio/npk/image4.png diff --git a/source/asserts/nucleistudio/npk/media/image5.png b/source/asserts/nucleistudio/npk/image5.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image5.png rename to source/asserts/nucleistudio/npk/image5.png diff --git a/source/asserts/nucleistudio/npk/media/image6.png b/source/asserts/nucleistudio/npk/image6.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image6.png rename to source/asserts/nucleistudio/npk/image6.png diff --git a/source/asserts/nucleistudio/npk/media/image7.png b/source/asserts/nucleistudio/npk/image7.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image7.png rename to source/asserts/nucleistudio/npk/image7.png diff --git a/source/asserts/nucleistudio/npk/media/image8.png b/source/asserts/nucleistudio/npk/image8.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image8.png rename to source/asserts/nucleistudio/npk/image8.png diff --git a/source/asserts/nucleistudio/npk/media/image9.png b/source/asserts/nucleistudio/npk/image9.png similarity index 100% rename from source/asserts/nucleistudio/npk/media/image9.png rename to source/asserts/nucleistudio/npk/image9.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image10.png b/source/asserts/nucleistudio/projectbuild/image10.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image10.png rename to source/asserts/nucleistudio/projectbuild/image10.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image11.png b/source/asserts/nucleistudio/projectbuild/image11.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image11.png rename to source/asserts/nucleistudio/projectbuild/image11.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image12.png b/source/asserts/nucleistudio/projectbuild/image12.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image12.png rename to source/asserts/nucleistudio/projectbuild/image12.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image13.png b/source/asserts/nucleistudio/projectbuild/image13.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image13.png rename to source/asserts/nucleistudio/projectbuild/image13.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image14.png b/source/asserts/nucleistudio/projectbuild/image14.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image14.png rename to source/asserts/nucleistudio/projectbuild/image14.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image15.png b/source/asserts/nucleistudio/projectbuild/image15.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image15.png rename to source/asserts/nucleistudio/projectbuild/image15.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image16.png b/source/asserts/nucleistudio/projectbuild/image16.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image16.png rename to source/asserts/nucleistudio/projectbuild/image16.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image2.png b/source/asserts/nucleistudio/projectbuild/image2.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image2.png rename to source/asserts/nucleistudio/projectbuild/image2.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image3.png b/source/asserts/nucleistudio/projectbuild/image3.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image3.png rename to source/asserts/nucleistudio/projectbuild/image3.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image4.png b/source/asserts/nucleistudio/projectbuild/image4.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image4.png rename to source/asserts/nucleistudio/projectbuild/image4.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image5.png b/source/asserts/nucleistudio/projectbuild/image5.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image5.png rename to source/asserts/nucleistudio/projectbuild/image5.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image6.png b/source/asserts/nucleistudio/projectbuild/image6.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image6.png rename to source/asserts/nucleistudio/projectbuild/image6.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image7.png b/source/asserts/nucleistudio/projectbuild/image7.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image7.png rename to source/asserts/nucleistudio/projectbuild/image7.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image8.png b/source/asserts/nucleistudio/projectbuild/image8.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image8.png rename to source/asserts/nucleistudio/projectbuild/image8.png diff --git a/source/asserts/nucleistudio/projectbuild/media/image9.png b/source/asserts/nucleistudio/projectbuild/image9.png similarity index 100% rename from source/asserts/nucleistudio/projectbuild/media/image9.png rename to source/asserts/nucleistudio/projectbuild/image9.png diff --git a/source/asserts/nucleistudio/projectnew/media/image10.png b/source/asserts/nucleistudio/projectnew/image10.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image10.png rename to source/asserts/nucleistudio/projectnew/image10.png diff --git a/source/asserts/nucleistudio/projectnew/media/image11.png b/source/asserts/nucleistudio/projectnew/image11.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image11.png rename to source/asserts/nucleistudio/projectnew/image11.png diff --git a/source/asserts/nucleistudio/projectnew/media/image12.png b/source/asserts/nucleistudio/projectnew/image12.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image12.png rename to source/asserts/nucleistudio/projectnew/image12.png diff --git a/source/asserts/nucleistudio/projectnew/media/image13.png b/source/asserts/nucleistudio/projectnew/image13.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image13.png rename to source/asserts/nucleistudio/projectnew/image13.png diff --git a/source/asserts/nucleistudio/projectnew/media/image14.png b/source/asserts/nucleistudio/projectnew/image14.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image14.png rename to source/asserts/nucleistudio/projectnew/image14.png diff --git a/source/asserts/nucleistudio/projectnew/media/image15.png b/source/asserts/nucleistudio/projectnew/image15.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image15.png rename to source/asserts/nucleistudio/projectnew/image15.png diff --git a/source/asserts/nucleistudio/projectnew/media/image16.png b/source/asserts/nucleistudio/projectnew/image16.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image16.png rename to source/asserts/nucleistudio/projectnew/image16.png diff --git a/source/asserts/nucleistudio/projectnew/media/image17.png b/source/asserts/nucleistudio/projectnew/image17.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image17.png rename to source/asserts/nucleistudio/projectnew/image17.png diff --git a/source/asserts/nucleistudio/projectnew/media/image18.png b/source/asserts/nucleistudio/projectnew/image18.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image18.png rename to source/asserts/nucleistudio/projectnew/image18.png diff --git a/source/asserts/nucleistudio/projectnew/media/image19.png b/source/asserts/nucleistudio/projectnew/image19.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image19.png rename to source/asserts/nucleistudio/projectnew/image19.png diff --git a/source/asserts/nucleistudio/projectnew/media/image2.png b/source/asserts/nucleistudio/projectnew/image2.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image2.png rename to source/asserts/nucleistudio/projectnew/image2.png diff --git a/source/asserts/nucleistudio/projectnew/media/image20.png b/source/asserts/nucleistudio/projectnew/image20.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image20.png rename to source/asserts/nucleistudio/projectnew/image20.png diff --git a/source/asserts/nucleistudio/projectnew/media/image21.png b/source/asserts/nucleistudio/projectnew/image21.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image21.png rename to source/asserts/nucleistudio/projectnew/image21.png diff --git a/source/asserts/nucleistudio/projectnew/media/image22.png b/source/asserts/nucleistudio/projectnew/image22.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image22.png rename to source/asserts/nucleistudio/projectnew/image22.png diff --git a/source/asserts/nucleistudio/projectnew/media/image23.png b/source/asserts/nucleistudio/projectnew/image23.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image23.png rename to source/asserts/nucleistudio/projectnew/image23.png diff --git a/source/asserts/nucleistudio/projectnew/media/image24.png b/source/asserts/nucleistudio/projectnew/image24.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image24.png rename to source/asserts/nucleistudio/projectnew/image24.png diff --git a/source/asserts/nucleistudio/projectnew/media/image25.png b/source/asserts/nucleistudio/projectnew/image25.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image25.png rename to source/asserts/nucleistudio/projectnew/image25.png diff --git a/source/asserts/nucleistudio/projectnew/media/image26.png b/source/asserts/nucleistudio/projectnew/image26.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image26.png rename to source/asserts/nucleistudio/projectnew/image26.png diff --git a/source/asserts/nucleistudio/projectnew/media/image27.png b/source/asserts/nucleistudio/projectnew/image27.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image27.png rename to source/asserts/nucleistudio/projectnew/image27.png diff --git a/source/asserts/nucleistudio/projectnew/media/image28.png b/source/asserts/nucleistudio/projectnew/image28.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image28.png rename to source/asserts/nucleistudio/projectnew/image28.png diff --git a/source/asserts/nucleistudio/projectnew/media/image29.png b/source/asserts/nucleistudio/projectnew/image29.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image29.png rename to source/asserts/nucleistudio/projectnew/image29.png diff --git a/source/asserts/nucleistudio/projectnew/media/image3.png b/source/asserts/nucleistudio/projectnew/image3.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image3.png rename to source/asserts/nucleistudio/projectnew/image3.png diff --git a/source/asserts/nucleistudio/projectnew/media/image30.png b/source/asserts/nucleistudio/projectnew/image30.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image30.png rename to source/asserts/nucleistudio/projectnew/image30.png diff --git a/source/asserts/nucleistudio/projectnew/media/image31.png b/source/asserts/nucleistudio/projectnew/image31.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image31.png rename to source/asserts/nucleistudio/projectnew/image31.png diff --git a/source/asserts/nucleistudio/projectnew/media/image32.png b/source/asserts/nucleistudio/projectnew/image32.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image32.png rename to source/asserts/nucleistudio/projectnew/image32.png diff --git a/source/asserts/nucleistudio/projectnew/media/image33.png b/source/asserts/nucleistudio/projectnew/image33.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image33.png rename to source/asserts/nucleistudio/projectnew/image33.png diff --git a/source/asserts/nucleistudio/projectnew/media/image34.png b/source/asserts/nucleistudio/projectnew/image34.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image34.png rename to source/asserts/nucleistudio/projectnew/image34.png diff --git a/source/asserts/nucleistudio/projectnew/media/image35.png b/source/asserts/nucleistudio/projectnew/image35.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image35.png rename to source/asserts/nucleistudio/projectnew/image35.png diff --git a/source/asserts/nucleistudio/projectnew/media/image36.png b/source/asserts/nucleistudio/projectnew/image36.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image36.png rename to source/asserts/nucleistudio/projectnew/image36.png diff --git a/source/asserts/nucleistudio/projectnew/media/image37.png b/source/asserts/nucleistudio/projectnew/image37.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image37.png rename to source/asserts/nucleistudio/projectnew/image37.png diff --git a/source/asserts/nucleistudio/projectnew/media/image38.png b/source/asserts/nucleistudio/projectnew/image38.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image38.png rename to source/asserts/nucleistudio/projectnew/image38.png diff --git a/source/asserts/nucleistudio/projectnew/media/image39.png b/source/asserts/nucleistudio/projectnew/image39.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image39.png rename to source/asserts/nucleistudio/projectnew/image39.png diff --git a/source/asserts/nucleistudio/projectnew/media/image4.png b/source/asserts/nucleistudio/projectnew/image4.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image4.png rename to source/asserts/nucleistudio/projectnew/image4.png diff --git a/source/asserts/nucleistudio/projectnew/media/image40.png b/source/asserts/nucleistudio/projectnew/image40.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image40.png rename to source/asserts/nucleistudio/projectnew/image40.png diff --git a/source/asserts/nucleistudio/projectnew/media/image41.png b/source/asserts/nucleistudio/projectnew/image41.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image41.png rename to source/asserts/nucleistudio/projectnew/image41.png diff --git a/source/asserts/nucleistudio/projectnew/media/image42.png b/source/asserts/nucleistudio/projectnew/image42.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image42.png rename to source/asserts/nucleistudio/projectnew/image42.png diff --git a/source/asserts/nucleistudio/projectnew/media/image43.png b/source/asserts/nucleistudio/projectnew/image43.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image43.png rename to source/asserts/nucleistudio/projectnew/image43.png diff --git a/source/asserts/nucleistudio/projectnew/media/image44.png b/source/asserts/nucleistudio/projectnew/image44.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image44.png rename to source/asserts/nucleistudio/projectnew/image44.png diff --git a/source/asserts/nucleistudio/projectnew/media/image45.png b/source/asserts/nucleistudio/projectnew/image45.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image45.png rename to source/asserts/nucleistudio/projectnew/image45.png diff --git a/source/asserts/nucleistudio/projectnew/media/image46.png b/source/asserts/nucleistudio/projectnew/image46.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image46.png rename to source/asserts/nucleistudio/projectnew/image46.png diff --git a/source/asserts/nucleistudio/projectnew/media/image5.png b/source/asserts/nucleistudio/projectnew/image5.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image5.png rename to source/asserts/nucleistudio/projectnew/image5.png diff --git a/source/asserts/nucleistudio/projectnew/media/image6.png b/source/asserts/nucleistudio/projectnew/image6.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image6.png rename to source/asserts/nucleistudio/projectnew/image6.png diff --git a/source/asserts/nucleistudio/projectnew/media/image7.png b/source/asserts/nucleistudio/projectnew/image7.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image7.png rename to source/asserts/nucleistudio/projectnew/image7.png diff --git a/source/asserts/nucleistudio/projectnew/media/image8.png b/source/asserts/nucleistudio/projectnew/image8.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image8.png rename to source/asserts/nucleistudio/projectnew/image8.png diff --git a/source/asserts/nucleistudio/projectnew/media/image9.png b/source/asserts/nucleistudio/projectnew/image9.png similarity index 100% rename from source/asserts/nucleistudio/projectnew/media/image9.png rename to source/asserts/nucleistudio/projectnew/image9.png diff --git a/source/asserts/nucleistudio/projectrun/media/image10.png b/source/asserts/nucleistudio/projectrun/image10.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image10.png rename to source/asserts/nucleistudio/projectrun/image10.png diff --git a/source/asserts/nucleistudio/projectrun/media/image11.png b/source/asserts/nucleistudio/projectrun/image11.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image11.png rename to source/asserts/nucleistudio/projectrun/image11.png diff --git a/source/asserts/nucleistudio/projectrun/media/image12.png b/source/asserts/nucleistudio/projectrun/image12.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image12.png rename to source/asserts/nucleistudio/projectrun/image12.png diff --git a/source/asserts/nucleistudio/projectrun/media/image13.png b/source/asserts/nucleistudio/projectrun/image13.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image13.png rename to source/asserts/nucleistudio/projectrun/image13.png diff --git a/source/asserts/nucleistudio/projectrun/media/image14.png b/source/asserts/nucleistudio/projectrun/image14.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image14.png rename to source/asserts/nucleistudio/projectrun/image14.png diff --git a/source/asserts/nucleistudio/projectrun/media/image15.png b/source/asserts/nucleistudio/projectrun/image15.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image15.png rename to source/asserts/nucleistudio/projectrun/image15.png diff --git a/source/asserts/nucleistudio/projectrun/media/image16.png b/source/asserts/nucleistudio/projectrun/image16.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image16.png rename to source/asserts/nucleistudio/projectrun/image16.png diff --git a/source/asserts/nucleistudio/projectrun/media/image17.png b/source/asserts/nucleistudio/projectrun/image17.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image17.png rename to source/asserts/nucleistudio/projectrun/image17.png diff --git a/source/asserts/nucleistudio/projectrun/media/image18.png b/source/asserts/nucleistudio/projectrun/image18.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image18.png rename to source/asserts/nucleistudio/projectrun/image18.png diff --git a/source/asserts/nucleistudio/projectrun/media/image19.png b/source/asserts/nucleistudio/projectrun/image19.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image19.png rename to source/asserts/nucleistudio/projectrun/image19.png diff --git a/source/asserts/nucleistudio/projectrun/media/image2.png b/source/asserts/nucleistudio/projectrun/image2.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image2.png rename to source/asserts/nucleistudio/projectrun/image2.png diff --git a/source/asserts/nucleistudio/projectrun/media/image20.png b/source/asserts/nucleistudio/projectrun/image20.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image20.png rename to source/asserts/nucleistudio/projectrun/image20.png diff --git a/source/asserts/nucleistudio/projectrun/media/image21.png b/source/asserts/nucleistudio/projectrun/image21.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image21.png rename to source/asserts/nucleistudio/projectrun/image21.png diff --git a/source/asserts/nucleistudio/projectrun/media/image22.png b/source/asserts/nucleistudio/projectrun/image22.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image22.png rename to source/asserts/nucleistudio/projectrun/image22.png diff --git a/source/asserts/nucleistudio/projectrun/media/image23.png b/source/asserts/nucleistudio/projectrun/image23.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image23.png rename to source/asserts/nucleistudio/projectrun/image23.png diff --git a/source/asserts/nucleistudio/projectrun/media/image24.png b/source/asserts/nucleistudio/projectrun/image24.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image24.png rename to source/asserts/nucleistudio/projectrun/image24.png diff --git a/source/asserts/nucleistudio/projectrun/media/image25.png b/source/asserts/nucleistudio/projectrun/image25.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image25.png rename to source/asserts/nucleistudio/projectrun/image25.png diff --git a/source/asserts/nucleistudio/projectrun/media/image26.png b/source/asserts/nucleistudio/projectrun/image26.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image26.png rename to source/asserts/nucleistudio/projectrun/image26.png diff --git a/source/asserts/nucleistudio/projectrun/media/image27.png b/source/asserts/nucleistudio/projectrun/image27.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image27.png rename to source/asserts/nucleistudio/projectrun/image27.png diff --git a/source/asserts/nucleistudio/projectrun/media/image28.png b/source/asserts/nucleistudio/projectrun/image28.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image28.png rename to source/asserts/nucleistudio/projectrun/image28.png diff --git a/source/asserts/nucleistudio/projectrun/media/image29.png b/source/asserts/nucleistudio/projectrun/image29.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image29.png rename to source/asserts/nucleistudio/projectrun/image29.png diff --git a/source/asserts/nucleistudio/projectrun/media/image3.png b/source/asserts/nucleistudio/projectrun/image3.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image3.png rename to source/asserts/nucleistudio/projectrun/image3.png diff --git a/source/asserts/nucleistudio/projectrun/media/image30.png b/source/asserts/nucleistudio/projectrun/image30.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image30.png rename to source/asserts/nucleistudio/projectrun/image30.png diff --git a/source/asserts/nucleistudio/projectrun/media/image31.png b/source/asserts/nucleistudio/projectrun/image31.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image31.png rename to source/asserts/nucleistudio/projectrun/image31.png diff --git a/source/asserts/nucleistudio/projectrun/media/image32.png b/source/asserts/nucleistudio/projectrun/image32.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image32.png rename to source/asserts/nucleistudio/projectrun/image32.png diff --git a/source/asserts/nucleistudio/projectrun/media/image33.png b/source/asserts/nucleistudio/projectrun/image33.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image33.png rename to source/asserts/nucleistudio/projectrun/image33.png diff --git a/source/asserts/nucleistudio/projectrun/media/image34.png b/source/asserts/nucleistudio/projectrun/image34.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image34.png rename to source/asserts/nucleistudio/projectrun/image34.png diff --git a/source/asserts/nucleistudio/projectrun/media/image35.png b/source/asserts/nucleistudio/projectrun/image35.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image35.png rename to source/asserts/nucleistudio/projectrun/image35.png diff --git a/source/asserts/nucleistudio/projectrun/media/image36.png b/source/asserts/nucleistudio/projectrun/image36.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image36.png rename to source/asserts/nucleistudio/projectrun/image36.png diff --git a/source/asserts/nucleistudio/projectrun/media/image37.png b/source/asserts/nucleistudio/projectrun/image37.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image37.png rename to source/asserts/nucleistudio/projectrun/image37.png diff --git a/source/asserts/nucleistudio/projectrun/media/image38.png b/source/asserts/nucleistudio/projectrun/image38.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image38.png rename to source/asserts/nucleistudio/projectrun/image38.png diff --git a/source/asserts/nucleistudio/projectrun/media/image39.png b/source/asserts/nucleistudio/projectrun/image39.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image39.png rename to source/asserts/nucleistudio/projectrun/image39.png diff --git a/source/asserts/nucleistudio/projectrun/media/image4.png b/source/asserts/nucleistudio/projectrun/image4.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image4.png rename to source/asserts/nucleistudio/projectrun/image4.png diff --git a/source/asserts/nucleistudio/projectrun/media/image40.png b/source/asserts/nucleistudio/projectrun/image40.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image40.png rename to source/asserts/nucleistudio/projectrun/image40.png diff --git a/source/asserts/nucleistudio/projectrun/media/image41.png b/source/asserts/nucleistudio/projectrun/image41.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image41.png rename to source/asserts/nucleistudio/projectrun/image41.png diff --git a/source/asserts/nucleistudio/projectrun/media/image42.png b/source/asserts/nucleistudio/projectrun/image42.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image42.png rename to source/asserts/nucleistudio/projectrun/image42.png diff --git a/source/asserts/nucleistudio/projectrun/media/image43.png b/source/asserts/nucleistudio/projectrun/image43.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image43.png rename to source/asserts/nucleistudio/projectrun/image43.png diff --git a/source/asserts/nucleistudio/projectrun/media/image44.png b/source/asserts/nucleistudio/projectrun/image44.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image44.png rename to source/asserts/nucleistudio/projectrun/image44.png diff --git a/source/asserts/nucleistudio/projectrun/media/image45.png b/source/asserts/nucleistudio/projectrun/image45.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image45.png rename to source/asserts/nucleistudio/projectrun/image45.png diff --git a/source/asserts/nucleistudio/projectrun/media/image46.png b/source/asserts/nucleistudio/projectrun/image46.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image46.png rename to source/asserts/nucleistudio/projectrun/image46.png diff --git a/source/asserts/nucleistudio/projectrun/media/image47.png b/source/asserts/nucleistudio/projectrun/image47.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image47.png rename to source/asserts/nucleistudio/projectrun/image47.png diff --git a/source/asserts/nucleistudio/projectrun/media/image48.png b/source/asserts/nucleistudio/projectrun/image48.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image48.png rename to source/asserts/nucleistudio/projectrun/image48.png diff --git a/source/asserts/nucleistudio/projectrun/media/image49.png b/source/asserts/nucleistudio/projectrun/image49.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image49.png rename to source/asserts/nucleistudio/projectrun/image49.png diff --git a/source/asserts/nucleistudio/projectrun/media/image5.png b/source/asserts/nucleistudio/projectrun/image5.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image5.png rename to source/asserts/nucleistudio/projectrun/image5.png diff --git a/source/asserts/nucleistudio/projectrun/media/image50.png b/source/asserts/nucleistudio/projectrun/image50.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image50.png rename to source/asserts/nucleistudio/projectrun/image50.png diff --git a/source/asserts/nucleistudio/projectrun/media/image51.png b/source/asserts/nucleistudio/projectrun/image51.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image51.png rename to source/asserts/nucleistudio/projectrun/image51.png diff --git a/source/asserts/nucleistudio/projectrun/media/image52.png b/source/asserts/nucleistudio/projectrun/image52.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image52.png rename to source/asserts/nucleistudio/projectrun/image52.png diff --git a/source/asserts/nucleistudio/projectrun/media/image53.png b/source/asserts/nucleistudio/projectrun/image53.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image53.png rename to source/asserts/nucleistudio/projectrun/image53.png diff --git a/source/asserts/nucleistudio/projectrun/media/image54.png b/source/asserts/nucleistudio/projectrun/image54.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image54.png rename to source/asserts/nucleistudio/projectrun/image54.png diff --git a/source/asserts/nucleistudio/projectrun/media/image55.png b/source/asserts/nucleistudio/projectrun/image55.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image55.png rename to source/asserts/nucleistudio/projectrun/image55.png diff --git a/source/asserts/nucleistudio/projectrun/media/image56.png b/source/asserts/nucleistudio/projectrun/image56.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image56.png rename to source/asserts/nucleistudio/projectrun/image56.png diff --git a/source/asserts/nucleistudio/projectrun/media/image57.png b/source/asserts/nucleistudio/projectrun/image57.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image57.png rename to source/asserts/nucleistudio/projectrun/image57.png diff --git a/source/asserts/nucleistudio/projectrun/media/image58.png b/source/asserts/nucleistudio/projectrun/image58.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image58.png rename to source/asserts/nucleistudio/projectrun/image58.png diff --git a/source/asserts/nucleistudio/projectrun/media/image59.png b/source/asserts/nucleistudio/projectrun/image59.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image59.png rename to source/asserts/nucleistudio/projectrun/image59.png diff --git a/source/asserts/nucleistudio/projectrun/media/image6.png b/source/asserts/nucleistudio/projectrun/image6.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image6.png rename to source/asserts/nucleistudio/projectrun/image6.png diff --git a/source/asserts/nucleistudio/projectrun/media/image60.png b/source/asserts/nucleistudio/projectrun/image60.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image60.png rename to source/asserts/nucleistudio/projectrun/image60.png diff --git a/source/asserts/nucleistudio/projectrun/media/image7.png b/source/asserts/nucleistudio/projectrun/image7.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image7.png rename to source/asserts/nucleistudio/projectrun/image7.png diff --git a/source/asserts/nucleistudio/projectrun/media/image8.png b/source/asserts/nucleistudio/projectrun/image8.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image8.png rename to source/asserts/nucleistudio/projectrun/image8.png diff --git a/source/asserts/nucleistudio/projectrun/media/image9.png b/source/asserts/nucleistudio/projectrun/image9.png similarity index 100% rename from source/asserts/nucleistudio/projectrun/media/image9.png rename to source/asserts/nucleistudio/projectrun/image9.png diff --git a/source/asserts/nucleistudio/update/media/image2.png b/source/asserts/nucleistudio/update/image2.png similarity index 100% rename from source/asserts/nucleistudio/update/media/image2.png rename to source/asserts/nucleistudio/update/image2.png diff --git a/source/asserts/nucleistudio/update/media/image3.png b/source/asserts/nucleistudio/update/image3.png similarity index 100% rename from source/asserts/nucleistudio/update/media/image3.png rename to source/asserts/nucleistudio/update/image3.png diff --git a/source/asserts/nucleistudio/update/media/image4.png b/source/asserts/nucleistudio/update/image4.png similarity index 100% rename from source/asserts/nucleistudio/update/media/image4.png rename to source/asserts/nucleistudio/update/image4.png diff --git a/source/asserts/nucleistudio/update/media/image5.png b/source/asserts/nucleistudio/update/image5.png similarity index 100% rename from source/asserts/nucleistudio/update/media/image5.png rename to source/asserts/nucleistudio/update/image5.png diff --git a/source/ide/advanceeusage.rst b/source/ide/advanceeusage.rst index 6fdb3d2..749afbe 100644 --- a/source/ide/advanceeusage.rst +++ b/source/ide/advanceeusage.rst @@ -32,10 +32,10 @@ Nuclei Studio 2023.10版导导入旧工程 .. _ide_advanceeusage_3: -通过工具将工程转换成支持gcc 13的工程 +通过工具将工程转换成支持GCC 13的工程 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -为了方便用户导入旧的工程,并能正常使用Nuclei Studio 2023.10特性,我们提供了快速转换工具“Convert GCC 10 Project to GCC 13”,选中工程点击鼠标右键,在弹出的菜单中找到“Convert GCC 10 Project to GCC 13”并点击。 +为了方便用户导入旧的工程,并能正常使用Nuclei Studio 2023.10特性,我们提供了快速转换工具 ``Convert GCC 10 Project to GCC 13`` ,选中工程点击鼠标右键,在弹出的菜单中找到 ``Convert GCC 10 Project to GCC 13`` 并点击。 |image3| @@ -45,10 +45,10 @@ Nuclei Studio 2023.10版导导入旧工程 .. _ide_advanceeusage_4: -批量将工程转换成支持gcc 13的工程 +批量将工程转换成支持GCC 13的工程 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -为了方便用户导入旧的工程,并能正常使用Nuclei Studio 2023.10以上版本的特性,批量将工程转换成支持gcc 13的工程。 +为了方便用户导入旧的工程,并能正常使用Nuclei Studio 2023.10以上版本的特性,批量将工程转换成支持GCC 13的工程。 |image5| @@ -105,7 +105,7 @@ LST View 在Nuclei Studio 2024.06版本中,集成了LST View工具,LST View可以单独使用,也可以在Trace工具或GProf工具中被呼起,主要功能,是帮助用户方便的查看LST文件,并实现LST文件与源码的联动。 -在Nuclei Studio中依次Window -> Show View -> Other,在弹出的Show View中搜索 ``LST View`` 。 +在Nuclei Studio中依次 ``Window -> Show View -> Other`` ,在弹出的Show View中搜索 ``LST View`` 。 |image13| @@ -194,7 +194,7 @@ Nuclei Studio中的Profiling功能是借助于gcc编译器和binutils中的gprof Call Graph(调用图)是一个强大的工具,它允许开发人员直观地理解程序中函数或方法之间的调用关系。通过Call Graph,开发人员可以迅速识别出哪些函数被频繁调用,哪些函数是关键的入口点,以及函数之间的依赖关系。Nuclei Studio中Call Graph主要是通过分析Profiling的数据,来获取到程序的调用关系。 -在NucleiStudio中依次 ``Window -> Show View -> Other`` ,在弹出的Show View中搜索 ``Call Graph`` ,打开 ``Call Graph``工具。 ``Call Graph`` 工具中提供了多处视图,其中常用到的视图有以下几个。 +在NucleiStudio中依次 ``Window -> Show View -> Other`` ,在弹出的Show View中搜索 ``Call Graph`` ,打开 ``Call Graph`` 工具。 ``Call Graph`` 工具中提供了多处视图,其中常用到的视图有以下几个。 Radial View ^^^^^^^^^^^ @@ -290,14 +290,14 @@ Gprof工具会启动,就可以看到对应用程序的分析结果,显示了 |image34| -打开Gprof的同时,NucleiStudio会根据gmon.out文件解析出程序的Call Graph并生成callgraph.out文件。双击callgraph.out文件,也可以点击Gprof工具的菜单栏中Open Call Graph View按钮,来启动Call Graph工具。关于Call Graph的具体使用,可以参考 :ref:`关于Call Graph功能 ` 。 +打开Gprof的同时,NucleiStudio会根据gmon.out文件解析出程序的Call Graph并生成 ``callgraph.out`` 文件。双击 ``callgraph.out`` 文件,也可以点击Gprof工具的菜单栏中 ``Open Call Graph View`` 按钮,来启动Call Graph工具。关于Call Graph的具体使用,可以参考 :ref:`关于Call Graph功能 ` 。 |image35| 通过Semihosting使用 ^^^^^^^^^^^^^^^^^^^ -NucleiSudio安装了nuclei_sdk 0.6.0后,可以创建一个 ``Profiling demo to show how to use gprof and gcov`` 的测试工程,此时需要选中Enable Semihosting。 +NucleiSudio安装了nuclei_sdk 0.6.0后,可以创建一个 ``Profiling demo to show how to use gprof and gcov`` 的测试工程,此时需要选中 ``Enable Semihosting`` 。 |image36| @@ -415,23 +415,23 @@ trace的配置信息,在这里配置Trace ATB2AXI Config Addr、Trace Buffer B Trace记录表格,是Nuclei Studio将dump到的trace文件进行解密之后,生成的记录进行展示,并且当用户点击某条记录时,会自动定位到对应的源代码和反汇编代码的行数。 -- **Record:**\ 记录id +- **Record:** 记录id -- **CoreId:**\ Coreid,主要是在多核时可以用于区分不同的Core +- **CoreId:** Coreid,主要是在多核时可以用于区分不同的Core -- **Addr:**\ 指令地址 +- **Addr:** 指令地址 -- **CPU Clock:**\ 时钟Cycle计数 +- **CPU Clock:** 时钟Cycle计数 -- **Clock Diff:**\ 时钟Cycle差 +- **Clock Diff:** 时钟Cycle差 -- **Instruction Code:**\ 十六进制表示的指令码 +- **Instruction Code:** 十六进制表示的指令码 -- **Instruction:**\ 指令码 +- **Instruction:** 指令码 -- **File:**\ 指令码对应的源码所在的文件 +- **File:** 指令码对应的源码所在的文件 -- **File Line:**\ 指令码对应的源码所在的文件的行数 +- **File Line:** 指令码对应的源码所在的文件的行数 .. rubric:: Trace Configuration @@ -441,13 +441,13 @@ Trace记录表格,是Nuclei Studio将dump到的trace文件进行解密之后 - **Trace need to be configured:** 如果需要配置Trace模块就勾选,如果其他地方已经配置过了,就千万不要勾选了,例如多核SMP/AMP的情况下,SoC上只有一个Trace模块,假设其中一个核心已经勾选配置了,其他的核心就不能勾选了,或者是配置是在C代码中或者其他地方做了,也千万不要勾选。 -- **Trace ATB2AXI Config Addr:**\ ATB2AXI模块控制器的基地址。 +- **Trace ATB2AXI Config Addr:** ATB2AXI模块控制器的基地址。 -- **Trace Buffer Base Addr:**\ 存放trace记录的开始地址,例如:针对某个SoC, 举例如下在flashxip模式,使用ilm(0x1c000000)作为缓存buffer;在sramxip模式,使用dlm(0x08010000)作为缓存buffer。 +- **Trace Buffer Base Addr:** 存放trace记录的开始地址,例如:针对某个SoC, 举例如下在flashxip模式,使用ilm(0x1c000000)作为缓存buffer;在sramxip模式,使用dlm(0x08010000)作为缓存buffer。 -- **Trace Buffer Size in Bytes:**\ 存放trace记录的Buffer大小,单位为字节。 +- **Trace Buffer Size in Bytes:** 存放trace记录的Buffer大小,单位为字节。 -- **Trace Wrap:**\ 是否允许自动复盖,允许则在Buffer满时,将再次从头开始覆盖记录。 +- **Trace Wrap:** 是否允许自动复盖,允许则在Buffer满时,将再次从头开始覆盖记录。 .. rubric:: Trace Decoder Configuration @@ -455,17 +455,17 @@ Set Current Debug hart Configuration弹框中,用户可以自定义trace decod |image46| -- **ELF File Path:**\ trace生产时执行的elf文件的地址。 +- **ELF File Path:** trace生产时执行的elf文件的地址。 -- **Trace File Path:**\ 需要解析的trace文件的地址。 +- **Trace File Path:** 需要解析的trace文件的地址。 -- **Objdump Path:**\ trace decode过程中,需要用到objdump工具,所以这里需要指定所使用到的objdump工具的地址。 +- **Objdump Path:** trace decode过程中,需要用到objdump工具,所以这里需要指定所使用到的objdump工具的地址。 -- **HartID:**\ trace decode时需要指定当前需要查看的trace对应的HartID,单核工程默认HartID=0。 +- **HartID:** trace decode时需要指定当前需要查看的trace对应的HartID,单核工程默认HartID=0。 -- **Trace Data Align Size:**\ 跟踪数据对齐大小,一般与硬件的trace输出位宽对齐,默认有8、32、64。 +- **Trace Data Align Size:** 跟踪数据对齐大小,一般与硬件的trace输出位宽对齐,默认有8、32、64。 -- **Display Address Bits:**\ trace decode后显示地址的位数,一般是32、64、128位。 +- **Display Address Bits:** trace decode后显示地址的位数,一般是32、64、128位。 Trace的使用 ~~~~~~~~~~~ @@ -491,9 +491,9 @@ Trace的使用 |image49| -Trace配置完毕后,可以设置两个断点,一个断点用于Trace开始点,一个断点用于Trace结束点,在开始点断点停下后就可以点击start trace按钮,就可以继续debug操作(如单步或者运行等)了,在结束点断电停下后,就可以点击stop trace按钮来结束Trace。 +Trace配置完毕后,可以设置两个断点,一个断点用于Trace开始点,一个断点用于Trace结束点,在开始点断点停下后就可以点击 ``start trace`` 按钮,就可以继续debug操作(如单步或者运行等)了,在结束点断电停下后,就可以点击 ``stop trace`` 按钮来结束Trace。 上面只是Start/Stop -Trace的一种使用示例,也可以更灵活一些,请根据自己需要进行使用。当trace结束时(多核情况下请确保每个CPU的Trace都结束了),就可以点Dump trace file按钮,将trace文件从硬件上下载到本地,默认下载的trace文件存在工程目下的debug目录下,有一个“工程名.trace”的文件。 +Trace的一种使用示例,也可以更灵活一些,请根据自己需要进行使用。当trace结束时(多核情况下请确保每个CPU的Trace都结束了),就可以点 ``Dump trace file`` 按钮,将trace文件从硬件上下载到本地,默认下载的trace文件存在工程目下的debug目录下,有一个 ``工程名.trace`` 的文件。 |image50| @@ -512,46 +512,46 @@ Trace文件下载完后,Nuclei Studio会弹出一个 ``Set current debug hart 在SMP多核应用中使用Trace ^^^^^^^^^^^^^^^^^^^^^^^^ -在SMP多核应用中使用trace与单核大体相似,差别在于SMP多核在Debug时,不同的thread共用一个Trace Configuration, 且需要通过选择不同的Thread来对不同的CPU Hart核心单独start trace/stop trace。在Debug视图中,点击任意一个Thread,然后点击Trace工具栏中的 trace setting来设置Trace Configuration。 +在SMP多核应用中使用trace与单核大体相似,差别在于SMP多核在Debug时,不同的thread共用一个Trace Configuration, 且需要通过选择不同的Thread来对不同的CPU Hart核心单独 ``start trace/stop trace`` 。在Debug视图中,点击任意一个Thread,然后点击Trace工具栏中的 ``trace setting`` 来设置Trace Configuration。 |image54| 在Debug视图中,可以通过点击不同的Thread,来切换不同的Core,如下图点击Thread #1或者Thread #1下对应的函数名来选中对应的是SMP多核应用中的Core 0,可以对Core -0开启或者关闭Trace,在SMP多核应用中,只要有一个Core在完成start trace操作时,Trace Configuration中的信息就会在硬件中设置好,其他的core在start trace操作时,就不会重复设置trace Configuration。 +0开启或者关闭Trace,在SMP多核应用中,只要有一个Core在完成start trace操作时,Trace Configuration中的信息就会在硬件中设置好,其他的core在 ``start trace`` 操作时,就不会重复设置trace Configuration。 |image55| -同理,在Debug视图中点击Thread #2或者Thread #2下对应的函数名,来切换到Core 1上进行start trace/stop trace的操作。 +同理,在Debug视图中点击Thread #2或者Thread #2下对应的函数名,来切换到Core 1上进行 ``start trace/stop trace`` 的操作。 |image56| -在dump trace file操作时,在SMP多核应用中,只有当所有的Core都stop trace,才可以执行dump trace file的指令并成功下载Trace文件。Trace文件的下载,在SMP多核应用中,只需要下载一份,在对trace文件进行decoder时,注意设置Hart ID,就可以解析出不同的trace记录表,如下图,当HardID=0时,就可以查看到Core 0对应的Trace记录。 +在 ``dump trace file`` 操作时,在SMP多核应用中,只有当所有的Core都 ``stop trace`` ,才可以执行 ``dump trace file`` 的指令并成功下载Trace文件。Trace文件的下载,在SMP多核应用中,只需要下载一份,在对trace文件进行decode时,注意设置Hart ID,就可以解析出不同的trace记录表,如下图,当 ``HardID=0`` 时,就可以查看到Core 0对应的Trace记录。 |image57| -同理当HardID=1时,就可以查看到Core 1对应的Trace记录。 +同理当 ``HardID=1`` 时,就可以查看到Core 1对应的Trace记录。 |image58| 在AMP多核应用中使用Trace ^^^^^^^^^^^^^^^^^^^^^^^^ -在AMP多核应用中使用trace也类似,trace配置也是共享。不同的thread共用一个trace configuration,但可以通过不同的thread,对不同的核单独start trace/stop trace。如下图,在Debug视图,点击Thread #1或者Thread #1下的函数名,切换到AMP多核应用中Core 0,然后点击Trace工具栏中的 trace setting来设置Core 0对应的Trace Configuration。 +在AMP多核应用中使用trace也类似,trace配置也是共享。不同的thread共用一个trace configuration,但可以通过不同的thread,对不同的核单独 ``start trace/stop trace`` 。如下图,在Debug视图,点击 ``Thread #1`` 或者 ``Thread #1`` 下的函数名,切换到AMP多核应用中 ``Core 0`` ,然后点击Trace工具栏中的 ``trace setting`` 来设置Core 0对应的Trace Configuration。 |image59| -在Debug视图,点击Thread #2或者Thread #2下的函数名,切换到AMP多核应用中Core 1,然后点击Trace工具栏中的 trace setting来设置Core 1对应的Trace Configuration,因为在AMP多核应用中trace配置是共用,所以此处设置需要将 Trace need to be configured的勾去掉,表示可以使用trace功能,但不需要有任何设置。 +在Debug视图,点击 ``Thread #2`` 或者 ``Thread #2`` 下的函数名,切换到AMP多核应用中 ``Core 1`` ,然后点击Trace工具栏中的 ``trace setting`` 来设置 ``Core 1`` 对应的Trace Configuration,因为在AMP多核应用中trace配置是共用,所以此处设置需要将 ``Trace need to be configured`` 的勾去掉,表示可以使用trace功能,但不需要有任何设置。 |image60| -Trace Configuration设置完成后,同样的通过Debug视图的Thread来切换不同的Core,进行start trace/stop trace/dump trace file操作,注意,设置了Trace Configuration的Core需要优先于其它Core开始start trace,并将Trace Configuration的信息设置好,其他的Core才可以正常的start trace/stop trace/dump trace file操作。 +Trace Configuration设置完成后,同样的通过Debug视图的Thread来切换不同的Core,进行 ``start trace/stop trace/dump trace file`` 操作,注意,设置了Trace Configuration的Core需要优先于其它Core开始 ``start trace`` ,并将Trace Configuration的信息设置好,其他的Core才可以正常的 ``start trace/stop trace/dump trace file`` 操作。 -在dump trace file操作时,在AMP多核应用中,请确定所有的Core都stop trace,才执行dump trace file的指令,否则可能在某一下Core在dump trace file,其他的Core还在记录trace,最后得到的Trace文件并与预期不符。Trace文件下载,在AMP多核应用中,需要每一个工程应用单独dump一份trace文件,其实dump到的trace文件内容是一样的,在对trace文件进行decoder时,同样需要注意设置Core Hart ID,就可以解析出对应的trace记录表。其他操作与上文内容中所述类似。 +在 ``dump trace file`` 操作时,在AMP多核应用中,请确定所有的Core都 ``stop trace`` ,才执行 ``dump trace file`` 的指令,否则可能在某一下Core在 ``dump trace file`` ,其他的Core还在记录trace,最后得到的Trace文件并与预期不符。Trace文件下载,在AMP多核应用中,需要每一个工程应用单独dump一份trace文件,其实dump到的trace文件内容是一样的,在对trace文件进行decoder时,同样需要注意设置 ``Core Hart ID`` ,就可以解析出对应的trace记录表。其他操作与上文内容中所述类似。 查看脱机Trace ^^^^^^^^^^^^^ -在某些场景下,用户可能通过命令行或其他方式,得到了一个trace文件,这时只需打开Set Current Debug hart Configuration,并按要求配置好参数,即可通过NucleiStudio的trace工具解析这个trace文件了。 +在某些场景下,用户可能通过命令行或其他方式,得到了一个trace文件,这时只需打开 ``Set Current Debug hart Configuration``,并按要求配置好参数,即可通过NucleiStudio的trace工具解析这个trace文件了。 |image61| @@ -560,7 +560,7 @@ Trace Configuration设置完成后,同样的通过Debug视图的Thread来切 RVProf功能的使用 ---------------- -RVProf是芯来科技针对cpu cycle model开发的性能分析工具,Nuclei Studio在2024.02.dev版本中,完成对RVProf的支持。在实际使用中,RVProf功能分三步完成,首先通过Cycle model工具,运行代码,产生.trace文件,然后RVProf工具,将 ``.trace`` 解析成对应的 ``.json`` 文件,最后通过google的开源工具Perfetto Trace Viewer对 ``.json`` 文件进行解析并展示。因为cpu cycle model当前仅提供了linux版本,所以本文档均是在linux环境下演示此功能。 +RVProf是芯来科技针对cpu cycle model开发的性能分析工具,Nuclei Studio在2024.02.dev版本中,完成对RVProf的支持。在实际使用中,RVProf功能分三步完成,首先通过Cycle model工具,运行代码,产生 ``.rvtrace`` 文件,然后RVProf工具,将 ``.rvtrace`` 解析成对应的 ``.json`` 文件,最后通过google的开源工具Perfetto Trace Viewer对 ``.json`` 文件进行解析并展示。因为cpu cycle model当前仅提供了linux版本,所以本文档均是在linux环境下演示此功能。 测试环境 ~~~~~~~~~ @@ -595,14 +595,14 @@ cpu cycle model在运行过程中,对硬件环境的性能要求较高,在 |image65| -在创建的test工程中,可以看到多了一个test_debug_rvprof.launch文件,rvprof相关的配置在此文件中,可以查看内容如下。其中Cycle Model的time out时间,用来设置Cycle Model超时时间,因为Cycle Model运行时比较耗时,如果工程比较简单,可以设置一个较短的起时时间,到时间后,可以及时中断Cycle Model的运行;RVProf中的超时时间的功能也是类似。 +在创建的test工程中,可以看到多了一个 ``test_debug_rvprof.launch`` 文件,rvprof相关的配置在此文件中,可以查看内容如下。其中Cycle Model的time out时间,用来设置Cycle Model超时时间,因为Cycle Model运行时比较耗时,如果工程比较简单,可以设置一个较短的起时时间,到时间后,可以及时中断Cycle Model的运行;RVProf中的超时时间的功能也是类似。 |image66| 查看rvprof的结果 ~~~~~~~~~~~~~~~~~ -创建完工程后,在Nuclei Studio的launch bar上,选中test_debug_rvprof.launch,并点击工具栏中的运行按钮,Nuclei Studio依次完成以下任务,并将最终的结果在在Perfetto Trace Viewer中展示。 +创建完工程后,在Nuclei Studio的launch bar上,选中 ``test_debug_rvprof.launch`` ,并点击工具栏中的运行按钮,Nuclei Studio依次完成以下任务,并将最终的结果在在Perfetto Trace Viewer中展示。 - 编译工程代码 @@ -630,7 +630,7 @@ Nuclei Studio会在本地启一个web服务,同时打开Perfetto Trace Viewer |image70| -些时,在Perfetto Trace Viewer就可以查看到rvprof trace结果展示了,用户可以通过键盘的W/A/S/D按键查看更详细的信息。 +些时,在Perfetto Trace Viewer就可以查看到rvprof trace结果展示了,用户可以通过键盘的 ``W/A/S/D`` 按键查看更详细的信息。 |image71| @@ -658,7 +658,7 @@ Nuclei Near Cycle Model采用Nuclei Studio中的RVProf运行配置来进行 |image74| -其中在Config options中需要配置 ``--trace=1 --gprof=1 --logdir=Debug`` ,--trace=1表示开启rvtrace,--gprof=1表示开启gprof功能,--logdir=Debug则表示最终生成的 ``.rvtrace`` 文件、 ``.gmon`` 文件存存放的路径为当前工程下的Debug目录。 +其中在Config options中需要配置 ``--trace=1 --gprof=1 --logdir=Debug`` , ``--trace=1`` 表示开启rvtrace, ``--gprof=1`` 表示开启gprof功能, ``--logdir=Debug`` 则表示最终生成的 ``.rvtrace`` 文件、 ``.gmon`` 文件存存放的路径为当前工程下的Debug目录。 |image75| @@ -683,7 +683,7 @@ Nuclei Studio会在本地启一个web服务,同时打开Perfetto Trace Viewer |image79| -Nuclei Near Cycle Model中支持通过gprof来分析程序,所以当我们配置了“--gprof”,在程序运行时,也会在Debug目录(“--logdir=XX”所配置的目录)下同步产生一个 ``.gmon`` 文件,双击 ``.gmon`` 文件,将调用gprof工具来分析程序执行所消耗的cycle数及调用关系;同时也会产生对应的callgraph.out文件,双击 ``callgraph.out`` 文件,调用Call Graph查看程序的调用关系。 +Nuclei Near Cycle Model中支持通过gprof来分析程序,所以当我们配置了 ``--gprof`` ,在程序运行时,也会在Debug目录( ``--logdir=XX`` 所配置的目录)下同步产生一个 ``.gmon`` 文件,双击 ``.gmon`` 文件,将调用gprof工具来分析程序执行所消耗的cycle数及调用关系;同时也会产生对应的 ``callgraph.ou`` t文件,双击 ``callgraph.out`` 文件,调用Call Graph查看程序的调用关系。 调用gprof工具,可以查看生成的 ``.gmon`` 文件中的内容。 @@ -694,202 +694,202 @@ gprof工具在查看 ``.gmon`` 文件的同时,会根据其内容,解析出 |image81| -.. |image1| image:: /asserts/nucleistudio/advanceeusage/media/image2.png +.. |image1| image:: /asserts/nucleistudio/advanceeusage/image2.png -.. |image2| image:: /asserts/nucleistudio/advanceeusage/media/image3.png +.. |image2| image:: /asserts/nucleistudio/advanceeusage/image3.png -.. |image3| image:: /asserts/nucleistudio/advanceeusage/media/image4.png +.. |image3| image:: /asserts/nucleistudio/advanceeusage/image4.png -.. |image4| image:: /asserts/nucleistudio/advanceeusage/media/image5.png +.. |image4| image:: /asserts/nucleistudio/advanceeusage/image5.png -.. |image5| image:: /asserts/nucleistudio/advanceeusage/media/image6.png +.. |image5| image:: /asserts/nucleistudio/advanceeusage/image6.png -.. |image6| image:: /asserts/nucleistudio/advanceeusage/media/image7.png +.. |image6| image:: /asserts/nucleistudio/advanceeusage/image7.png -.. |image7| image:: /asserts/nucleistudio/advanceeusage/media/image8.png +.. |image7| image:: /asserts/nucleistudio/advanceeusage/image8.png -.. |image8| image:: /asserts/nucleistudio/advanceeusage/media/image9.png +.. |image8| image:: /asserts/nucleistudio/advanceeusage/image9.png -.. |image9| image:: /asserts/nucleistudio/advanceeusage/media/image10.png +.. |image9| image:: /asserts/nucleistudio/advanceeusage/image10.png -.. |image10| image:: /asserts/nucleistudio/advanceeusage/media/image11.png +.. |image10| image:: /asserts/nucleistudio/advanceeusage/image11.png -.. |image11| image:: /asserts/nucleistudio/advanceeusage/media/image12.png +.. |image11| image:: /asserts/nucleistudio/advanceeusage/image12.png -.. |image12| image:: /asserts/nucleistudio/advanceeusage/media/image13.png +.. |image12| image:: /asserts/nucleistudio/advanceeusage/image13.png -.. |image13| image:: /asserts/nucleistudio/advanceeusage/media/image14.png +.. |image13| image:: /asserts/nucleistudio/advanceeusage/image14.png -.. |image14| image:: /asserts/nucleistudio/advanceeusage/media/image15.png +.. |image14| image:: /asserts/nucleistudio/advanceeusage/image15.png -.. |image15| image:: /asserts/nucleistudio/advanceeusage/media/image16.png +.. |image15| image:: /asserts/nucleistudio/advanceeusage/image16.png -.. |image16| image:: /asserts/nucleistudio/advanceeusage/media/image17.png +.. |image16| image:: /asserts/nucleistudio/advanceeusage/image17.png -.. |image17| image:: /asserts/nucleistudio/advanceeusage/media/image18.png +.. |image17| image:: /asserts/nucleistudio/advanceeusage/image18.png -.. |image18| image:: /asserts/nucleistudio/advanceeusage/media/image19.png +.. |image18| image:: /asserts/nucleistudio/advanceeusage/image19.png -.. |image19| image:: /asserts/nucleistudio/advanceeusage/media/image20.png +.. |image19| image:: /asserts/nucleistudio/advanceeusage/image20.png -.. |image20| image:: /asserts/nucleistudio/advanceeusage/media/image21.png +.. |image20| image:: /asserts/nucleistudio/advanceeusage/image21.png -.. |image21| image:: /asserts/nucleistudio/advanceeusage/media/image22.png +.. |image21| image:: /asserts/nucleistudio/advanceeusage/image22.png -.. |image22| image:: /asserts/nucleistudio/advanceeusage/media/image23.png +.. |image22| image:: /asserts/nucleistudio/advanceeusage/image23.png -.. |profiling_options_in_ide| image:: /asserts/nucleistudio/advanceeusage/media/image24.png +.. |profiling_options_in_ide| image:: /asserts/nucleistudio/advanceeusage/image24.png -.. |image23| image:: /asserts/nucleistudio/advanceeusage/media/image25.png +.. |image23| image:: /asserts/nucleistudio/advanceeusage/image25.png -.. |image24| image:: /asserts/nucleistudio/advanceeusage/media/image26.png +.. |image24| image:: /asserts/nucleistudio/advanceeusage/image26.png -.. |image25| image:: /asserts/nucleistudio/advanceeusage/media/image27.png +.. |image25| image:: /asserts/nucleistudio/advanceeusage/image27.png -.. |image26| image:: /asserts/nucleistudio/advanceeusage/media/image28.png +.. |image26| image:: /asserts/nucleistudio/advanceeusage/image28.png -.. |image27| image:: /asserts/nucleistudio/advanceeusage/media/image29.png +.. |image27| image:: /asserts/nucleistudio/advanceeusage/image29.png -.. |image28| image:: /asserts/nucleistudio/advanceeusage/media/image30.png +.. |image28| image:: /asserts/nucleistudio/advanceeusage/image30.png -.. |image29| image:: /asserts/nucleistudio/advanceeusage/media/image31.png +.. |image29| image:: /asserts/nucleistudio/advanceeusage/image31.png -.. |image30| image:: /asserts/nucleistudio/advanceeusage/media/image32.png +.. |image30| image:: /asserts/nucleistudio/advanceeusage/image32.png -.. |image31| image:: /asserts/nucleistudio/advanceeusage/media/image33.png +.. |image31| image:: /asserts/nucleistudio/advanceeusage/image33.png -.. |image32| image:: /asserts/nucleistudio/advanceeusage/media/image34.png +.. |image32| image:: /asserts/nucleistudio/advanceeusage/image34.png -.. |image33| image:: /asserts/nucleistudio/advanceeusage/media/image35.png +.. |image33| image:: /asserts/nucleistudio/advanceeusage/image35.png -.. |image34| image:: /asserts/nucleistudio/advanceeusage/media/image36.png +.. |image34| image:: /asserts/nucleistudio/advanceeusage/image36.png -.. |image35| image:: /asserts/nucleistudio/advanceeusage/media/image37.png +.. |image35| image:: /asserts/nucleistudio/advanceeusage/image37.png -.. |image36| image:: /asserts/nucleistudio/advanceeusage/media/image38.png +.. |image36| image:: /asserts/nucleistudio/advanceeusage/image38.png -.. |image37| image:: /asserts/nucleistudio/advanceeusage/media/image39.png +.. |image37| image:: /asserts/nucleistudio/advanceeusage/image39.png -.. |image38| image:: /asserts/nucleistudio/advanceeusage/media/image25.png +.. |image38| image:: /asserts/nucleistudio/advanceeusage/image25.png -.. |image39| image:: /asserts/nucleistudio/advanceeusage/media/image40.png +.. |image39| image:: /asserts/nucleistudio/advanceeusage/image40.png -.. |image40| image:: /asserts/nucleistudio/advanceeusage/media/image41.png +.. |image40| image:: /asserts/nucleistudio/advanceeusage/image41.png -.. |image41| image:: /asserts/nucleistudio/advanceeusage/media/image42.png +.. |image41| image:: /asserts/nucleistudio/advanceeusage/image42.png -.. |image42| image:: /asserts/nucleistudio/advanceeusage/media/image43.png +.. |image42| image:: /asserts/nucleistudio/advanceeusage/image43.png -.. |image43| image:: /asserts/nucleistudio/advanceeusage/media/image44.png +.. |image43| image:: /asserts/nucleistudio/advanceeusage/image44.png -.. |image44| image:: /asserts/nucleistudio/advanceeusage/media/image45.png +.. |image44| image:: /asserts/nucleistudio/advanceeusage/image45.png -.. |image45| image:: /asserts/nucleistudio/advanceeusage/media/image46.png +.. |image45| image:: /asserts/nucleistudio/advanceeusage/image46.png -.. |image46| image:: /asserts/nucleistudio/advanceeusage/media/image47.png +.. |image46| image:: /asserts/nucleistudio/advanceeusage/image47.png -.. |image47| image:: /asserts/nucleistudio/advanceeusage/media/image48.png +.. |image47| image:: /asserts/nucleistudio/advanceeusage/image48.png -.. |image48| image:: /asserts/nucleistudio/advanceeusage/media/image49.png +.. |image48| image:: /asserts/nucleistudio/advanceeusage/image49.png -.. |image49| image:: /asserts/nucleistudio/advanceeusage/media/image50.png +.. |image49| image:: /asserts/nucleistudio/advanceeusage/image50.png -.. |image50| image:: /asserts/nucleistudio/advanceeusage/media/image51.png +.. |image50| image:: /asserts/nucleistudio/advanceeusage/image51.png -.. |image51| image:: /asserts/nucleistudio/advanceeusage/media/image52.png +.. |image51| image:: /asserts/nucleistudio/advanceeusage/image52.png -.. |image52| image:: /asserts/nucleistudio/advanceeusage/media/image53.png +.. |image52| image:: /asserts/nucleistudio/advanceeusage/image53.png -.. |image53| image:: /asserts/nucleistudio/advanceeusage/media/image54.png +.. |image53| image:: /asserts/nucleistudio/advanceeusage/image54.png -.. |image54| image:: /asserts/nucleistudio/advanceeusage/media/image55.png +.. |image54| image:: /asserts/nucleistudio/advanceeusage/image55.png -.. |image55| image:: /asserts/nucleistudio/advanceeusage/media/image56.png +.. |image55| image:: /asserts/nucleistudio/advanceeusage/image56.png -.. |image56| image:: /asserts/nucleistudio/advanceeusage/media/image57.png +.. |image56| image:: /asserts/nucleistudio/advanceeusage/image57.png -.. |image57| image:: /asserts/nucleistudio/advanceeusage/media/image58.png +.. |image57| image:: /asserts/nucleistudio/advanceeusage/image58.png -.. |image58| image:: /asserts/nucleistudio/advanceeusage/media/image59.png +.. |image58| image:: /asserts/nucleistudio/advanceeusage/image59.png -.. |image59| image:: /asserts/nucleistudio/advanceeusage/media/image60.png +.. |image59| image:: /asserts/nucleistudio/advanceeusage/image60.png -.. |image60| image:: /asserts/nucleistudio/advanceeusage/media/image61.png +.. |image60| image:: /asserts/nucleistudio/advanceeusage/image61.png -.. |image61| image:: /asserts/nucleistudio/advanceeusage/media/image47.png +.. |image61| image:: /asserts/nucleistudio/advanceeusage/image47.png -.. |image62| image:: /asserts/nucleistudio/advanceeusage/media/image62.png +.. |image62| image:: /asserts/nucleistudio/advanceeusage/image62.png -.. |image63| image:: /asserts/nucleistudio/advanceeusage/media/image63.png +.. |image63| image:: /asserts/nucleistudio/advanceeusage/image63.png -.. |image64| image:: /asserts/nucleistudio/advanceeusage/media/image64.png +.. |image64| image:: /asserts/nucleistudio/advanceeusage/image64.png -.. |image65| image:: /asserts/nucleistudio/advanceeusage/media/image65.png +.. |image65| image:: /asserts/nucleistudio/advanceeusage/image65.png -.. |image66| image:: /asserts/nucleistudio/advanceeusage/media/image66.png +.. |image66| image:: /asserts/nucleistudio/advanceeusage/image66.png -.. |image67| image:: /asserts/nucleistudio/advanceeusage/media/image67.png +.. |image67| image:: /asserts/nucleistudio/advanceeusage/image67.png -.. |image68| image:: /asserts/nucleistudio/advanceeusage/media/image68.png +.. |image68| image:: /asserts/nucleistudio/advanceeusage/image68.png -.. |image69| image:: /asserts/nucleistudio/advanceeusage/media/image69.png +.. |image69| image:: /asserts/nucleistudio/advanceeusage/image69.png -.. |image70| image:: /asserts/nucleistudio/advanceeusage/media/image70.png +.. |image70| image:: /asserts/nucleistudio/advanceeusage/image70.png -.. |image71| image:: /asserts/nucleistudio/advanceeusage/media/image71.png +.. |image71| image:: /asserts/nucleistudio/advanceeusage/image71.png -.. |image72| image:: /asserts/nucleistudio/advanceeusage/media/image72.png +.. |image72| image:: /asserts/nucleistudio/advanceeusage/image72.png -.. |image73| image:: /asserts/nucleistudio/advanceeusage/media/image73.png +.. |image73| image:: /asserts/nucleistudio/advanceeusage/image73.png -.. |image74| image:: /asserts/nucleistudio/advanceeusage/media/image74.png +.. |image74| image:: /asserts/nucleistudio/advanceeusage/image74.png -.. |image75| image:: /asserts/nucleistudio/advanceeusage/media/image75.png +.. |image75| image:: /asserts/nucleistudio/advanceeusage/image75.png -.. |image76| image:: /asserts/nucleistudio/advanceeusage/media/image76.png +.. |image76| image:: /asserts/nucleistudio/advanceeusage/image76.png -.. |image77| image:: /asserts/nucleistudio/advanceeusage/media/image77.png +.. |image77| image:: /asserts/nucleistudio/advanceeusage/image77.png -.. |image78| image:: /asserts/nucleistudio/advanceeusage/media/image78.png +.. |image78| image:: /asserts/nucleistudio/advanceeusage/image78.png -.. |image79| image:: /asserts/nucleistudio/advanceeusage/media/image79.png +.. |image79| image:: /asserts/nucleistudio/advanceeusage/image79.png -.. |image80| image:: /asserts/nucleistudio/advanceeusage/media/image80.png +.. |image80| image:: /asserts/nucleistudio/advanceeusage/image80.png -.. |image81| image:: /asserts/nucleistudio/advanceeusage/media/image81.png +.. |image81| image:: /asserts/nucleistudio/advanceeusage/image81.png diff --git a/source/ide/faq.rst b/source/ide/faq.rst index b8ef72b..c260a44 100644 --- a/source/ide/faq.rst +++ b/source/ide/faq.rst @@ -276,129 +276,129 @@ Debug时报错Error: Couldn't find an available hardware trigger. 如本文档中有疏漏的地方,请关注 `https://www.rvmcu.com/NucleiStudio-faq.html `__ 这里将列出不同版本后续遇到的常见问题。 -.. |image1| image:: /asserts/nucleistudio/faq/media/image2.png +.. |image1| image:: /asserts/nucleistudio/faq/image2.png -.. |image2| image:: /asserts/nucleistudio/faq/media/image3.png +.. |image2| image:: /asserts/nucleistudio/faq/image3.png -.. |image3| image:: /asserts/nucleistudio/faq/media/image4.png +.. |image3| image:: /asserts/nucleistudio/faq/image4.png -.. |image4| image:: /asserts/nucleistudio/faq/media/image5.png +.. |image4| image:: /asserts/nucleistudio/faq/image5.png -.. |image5| image:: /asserts/nucleistudio/faq/media/image6.png +.. |image5| image:: /asserts/nucleistudio/faq/image6.png -.. |image6| image:: /asserts/nucleistudio/faq/media/image7.png +.. |image6| image:: /asserts/nucleistudio/faq/image7.png -.. |image7| image:: /asserts/nucleistudio/faq/media/image8.png +.. |image7| image:: /asserts/nucleistudio/faq/image8.png -.. |image8| image:: /asserts/nucleistudio/faq/media/image9.png +.. |image8| image:: /asserts/nucleistudio/faq/image9.png -.. |image9| image:: /asserts/nucleistudio/faq/media/image10.png +.. |image9| image:: /asserts/nucleistudio/faq/image10.png -.. |image10| image:: /asserts/nucleistudio/faq/media/image11.png +.. |image10| image:: /asserts/nucleistudio/faq/image11.png -.. |image11| image:: /asserts/nucleistudio/faq/media/image12.png +.. |image11| image:: /asserts/nucleistudio/faq/image12.png -.. |image12| image:: /asserts/nucleistudio/faq/media/image13.png +.. |image12| image:: /asserts/nucleistudio/faq/image13.png -.. |image13| image:: /asserts/nucleistudio/faq/media/image14.png +.. |image13| image:: /asserts/nucleistudio/faq/image14.png -.. |image14| image:: /asserts/nucleistudio/faq/media/image15.png +.. |image14| image:: /asserts/nucleistudio/faq/image15.png -.. |image15| image:: /asserts/nucleistudio/faq/media/image16.png +.. |image15| image:: /asserts/nucleistudio/faq/image16.png -.. |image16| image:: /asserts/nucleistudio/faq/media/image17.png +.. |image16| image:: /asserts/nucleistudio/faq/image17.png -.. |image17| image:: /asserts/nucleistudio/faq/media/image18.png +.. |image17| image:: /asserts/nucleistudio/faq/image18.png -.. |image18| image:: /asserts/nucleistudio/faq/media/image19.png +.. |image18| image:: /asserts/nucleistudio/faq/image19.png -.. |image19| image:: /asserts/nucleistudio/faq/media/image20.png +.. |image19| image:: /asserts/nucleistudio/faq/image20.png -.. |image20| image:: /asserts/nucleistudio/faq/media/image21.png +.. |image20| image:: /asserts/nucleistudio/faq/image21.png -.. |image21| image:: /asserts/nucleistudio/faq/media/image22.png +.. |image21| image:: /asserts/nucleistudio/faq/image22.png -.. |image22| image:: /asserts/nucleistudio/faq/media/image23.png +.. |image22| image:: /asserts/nucleistudio/faq/image23.png -.. |image23| image:: /asserts/nucleistudio/faq/media/image24.png +.. |image23| image:: /asserts/nucleistudio/faq/image24.png -.. |image24| image:: /asserts/nucleistudio/faq/media/image25.png +.. |image24| image:: /asserts/nucleistudio/faq/image25.png -.. |image25| image:: /asserts/nucleistudio/faq/media/image26.png +.. |image25| image:: /asserts/nucleistudio/faq/image26.png -.. |image26| image:: /asserts/nucleistudio/faq/media/image27.png +.. |image26| image:: /asserts/nucleistudio/faq/image27.png -.. |image27| image:: /asserts/nucleistudio/faq/media/image28.png +.. |image27| image:: /asserts/nucleistudio/faq/image28.png -.. |image28| image:: /asserts/nucleistudio/faq/media/image29.png +.. |image28| image:: /asserts/nucleistudio/faq/image29.png -.. |image29| image:: /asserts/nucleistudio/faq/media/image30.png +.. |image29| image:: /asserts/nucleistudio/faq/image30.png -.. |image30| image:: /asserts/nucleistudio/faq/media/image31.png +.. |image30| image:: /asserts/nucleistudio/faq/image31.png -.. |image31| image:: /asserts/nucleistudio/faq/media/image32.png +.. |image31| image:: /asserts/nucleistudio/faq/image32.png -.. |image32| image:: /asserts/nucleistudio/faq/media/image33.png +.. |image32| image:: /asserts/nucleistudio/faq/image33.png -.. |image33| image:: /asserts/nucleistudio/faq/media/image34.png +.. |image33| image:: /asserts/nucleistudio/faq/image34.png -.. |image34| image:: /asserts/nucleistudio/faq/media/image35.png +.. |image34| image:: /asserts/nucleistudio/faq/image35.png -.. |image35| image:: /asserts/nucleistudio/faq/media/image36.png +.. |image35| image:: /asserts/nucleistudio/faq/image36.png -.. |image36| image:: /asserts/nucleistudio/faq/media/image37.png +.. |image36| image:: /asserts/nucleistudio/faq/image37.png -.. |image37| image:: /asserts/nucleistudio/faq/media/image38.png +.. |image37| image:: /asserts/nucleistudio/faq/image38.png -.. |image38| image:: /asserts/nucleistudio/faq/media/image39.png +.. |image38| image:: /asserts/nucleistudio/faq/image39.png -.. |image39| image:: /asserts/nucleistudio/faq/media/image40.png +.. |image39| image:: /asserts/nucleistudio/faq/image40.png -.. |image40| image:: /asserts/nucleistudio/faq/media/image41.png +.. |image40| image:: /asserts/nucleistudio/faq/image41.png -.. |image41| image:: /asserts/nucleistudio/faq/media/image42.png +.. |image41| image:: /asserts/nucleistudio/faq/image42.png -.. |image43| image:: /asserts/nucleistudio/faq/media/image43.png +.. |image43| image:: /asserts/nucleistudio/faq/image43.png diff --git a/source/ide/intro.rst b/source/ide/intro.rst index a8c76f3..834017a 100644 --- a/source/ide/intro.rst +++ b/source/ide/intro.rst @@ -265,7 +265,7 @@ RISC-V指令扩展使用变更 NPK包的使用变更 ~~~~~~~~~~~~~~~ -为了支持GCC 13和Clang 17,Nuclei SDK包升级到了0.5.0版本,使用SDK包创建工程时,用户可以根据需要,选择创建一个GCC 13或者Clang 17的工程。因为版本变动较大,0.5.0之前的sdk可能有部分功能在Nuclei Studio 2023.10版中使用异常,所我们提供了工具帮助您快速进行工程迁移和升级,\ **请自行备份老版本的工程**\ ,具体可能参考 :ref:`导入旧版本Nuclei Studio创建的工程 ` 。 +为了支持GCC 13和Clang 17,Nuclei SDK包升级到了0.5.0版本,使用SDK包创建工程时,用户可以根据需要,选择创建一个GCC 13或者Clang 17的工程。因为版本变动较大,0.5.0之前的sdk可能有部分功能在Nuclei Studio 2023.10版中使用异常,所我们提供了工具帮助您快速进行工程迁移和升级, **请自行备份老版本的工程** ,具体可能参考 :ref:`导入旧版本Nuclei Studio创建的工程 ` 。 |image9| @@ -290,7 +290,7 @@ OpenOCD版本升级至2023.10版,增加了一些额外的调试特性,例如 新增了elf文件查看器 ~~~~~~~~~~~~~~~~~~~ -在Nuclei Studio 2023.10新增elf文件编辑器,方便用户查看编译后产生.elf、.o文件。 +在Nuclei Studio 2023.10新增elf文件编辑器,方便用户查看编译后产生 ``.elf`` 、 ``.o`` 文件。 |image12| @@ -304,7 +304,7 @@ OpenOCD版本升级至2023.10版,增加了一些额外的调试特性,例如 新增trace功能 ~~~~~~~~~~~~~ -在Nuclei Studio 2023.10\ **实验性**\ 新增了trace功能,因使用此功能需要带有Nuclei Trace IP的CPU,如需体验此功能,请与我们联系。 +在Nuclei Studio 2023.10 **实验性** 新增了trace功能,因使用此功能需要带有Nuclei Trace IP的CPU,如需体验此功能,请与我们联系。 Nuclei Settings功能优化 ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -315,7 +315,7 @@ Nuclei Studio 2023.10去掉了原来的B/P/K/V的单选框,换成Other Extens |image14| -Nuclei Studio 2023.10去掉了原来的Select C Runtime Library单选框,在项目中如果需要使用,可能过项目配置传入的“--specs=”选项,或者Libraries选项,来实现。 +Nuclei Studio 2023.10去掉了原来的Select C Runtime Library单选框,在项目中如果需要使用,可能过项目配置传入的 ``--specs=`` 选项,或者Libraries选项,来实现。 |image15| @@ -328,12 +328,10 @@ Nuclei Settings增强了其通用性,使它不仅仅能对Nuclei的工程进 新增指定工作空间快速打开 ~~~~~~~~~~~~~~~~~~~~~~~~~ -类似双击项目下的\ **\*.nuproject**\ 文件可快速打开Nuclei Studio并导入该项目,现在Nuclei Studio会在使用过的工作空间目录下创建\ **work.nuworkspace**\ 文件,双击该文件可以直接打开Nuclei Studio,但该功能暂时只支持windows版本。这个功能需要解压IDE后,在windows上执行\ **install.bat**\ 来设置文件关联。 +类似双击项目下的 ``*.nuproject`` 文件可快速打开Nuclei Studio并导入该项目,现在Nuclei Studio会在使用过的工作空间目录下创建 ``work.nuworkspace`` 文件,双击该文件可以直接打开Nuclei Studio,但该功能暂时只支持windows版本。这个功能需要解压IDE后,在windows上执行 ``install.bat`` 来设置文件关联。 |image18| -.. _版更新说明-2: - 2022.12版更新说明 ----------------- @@ -364,7 +362,7 @@ Nuclei Studio IDE 安装 - HBird_Driver.exe(2021.02版本起不再提供) - - **仅Windows版提供,**\ 此文件为芯来蜂鸟调试器的USB驱动安装文件。 + - **仅Windows版提供,** 此文件为芯来蜂鸟调试器的USB驱动安装文件。 - 当在Windows环境下,使用该调试器时,需要安装此驱动使该USB设备能够被系统识别。 @@ -372,7 +370,7 @@ Nuclei Studio IDE 安装 - SerialDebugging_Tool(2021.02版本起不再提供) - - **仅Windows版提供**\ ,此文件为“串口调试助手”软件。此软件可以用于后续软件示例调试时通过串口打印信息。 + - **仅Windows版提供** ,此文件为“串口调试助手”软件。此软件可以用于后续软件示例调试时通过串口打印信息。 |image20| @@ -399,75 +397,75 @@ Nuclei Studio IDE 启动 -.. |image1| image:: /asserts/nucleistudio/intro/media/image2.png +.. |image1| image:: /asserts/nucleistudio/intro/image2.png :alt: workspace弹出不兼容的警告 -.. |IMG_256| image:: /asserts/nucleistudio/intro/media/image3.png +.. |IMG_256| image:: /asserts/nucleistudio/intro/image3.png :alt: build-tools更新到4.4版 -.. |image2| image:: /asserts/nucleistudio/intro/media/image4.png +.. |image2| image:: /asserts/nucleistudio/intro/image4.png :alt: GCC和Clang的目录结构 -.. |image3| image:: /asserts/nucleistudio/intro/media/image5.png +.. |image3| image:: /asserts/nucleistudio/intro/image5.png :alt: 工程对GCC 13的支持 -.. |image4| image:: /asserts/nucleistudio/intro/media/image6.png +.. |image4| image:: /asserts/nucleistudio/intro/image6.png :alt: 项目对Clang 17的支持 -.. |image5| image:: /asserts/nucleistudio/intro/media/image7.png +.. |image5| image:: /asserts/nucleistudio/intro/image7.png :alt: 创建工程时使用RISC-V扩展 -.. |image6| image:: /asserts/nucleistudio/intro/media/image8.png +.. |image6| image:: /asserts/nucleistudio/intro/image8.png :alt: 项目中对RISC-V扩展的支持 -.. |image7| image:: /asserts/nucleistudio/intro/media/image9.png +.. |image7| image:: /asserts/nucleistudio/intro/image9.png :alt: Nuclei Settings中对RISC-V扩展的支持 -.. |image8| image:: /asserts/nucleistudio/intro/media/image10.png +.. |image8| image:: /asserts/nucleistudio/intro/image10.png :alt: QEMU中对RISC-V扩展的支持 -.. |image9| image:: /asserts/nucleistudio/intro/media/image11.png +.. |image9| image:: /asserts/nucleistudio/intro/image11.png :alt: 创建工程时选择合适的工具链 -.. |image10| image:: /asserts/nucleistudio/intro/media/image12.png +.. |image10| image:: /asserts/nucleistudio/intro/image12.png :alt: 组件包所适配的Nuclei Studio版本号 -.. |image11| image:: /asserts/nucleistudio/intro/media/image13.png +.. |image11| image:: /asserts/nucleistudio/intro/image13.png :alt: QEMU 8.0所在的目录 -.. |image12| image:: /asserts/nucleistudio/intro/media/image14.png +.. |image12| image:: /asserts/nucleistudio/intro/image14.png :alt: elf文件编辑器查看.elf文件 -.. |image13| image:: /asserts/nucleistudio/intro/media/image15.png +.. |image13| image:: /asserts/nucleistudio/intro/image15.png :alt: elf文件编辑器查看.o文件 -.. |image14| image:: /asserts/nucleistudio/intro/media/image16.png +.. |image14| image:: /asserts/nucleistudio/intro/image16.png :alt: Nuceli Settings页面修改 -.. |image15| image:: /asserts/nucleistudio/intro/media/image17.png +.. |image15| image:: /asserts/nucleistudio/intro/image17.png :alt: Select C Runtime Library在新版IDE中已不存在 -.. |image16| image:: /asserts/nucleistudio/intro/media/image18.png +.. |image16| image:: /asserts/nucleistudio/intro/image18.png :alt: Shared 项目Nuclei Settings(Arm) -.. |image17| image:: /asserts/nucleistudio/intro/media/image19.png +.. |image17| image:: /asserts/nucleistudio/intro/image19.png :alt: Shared 项目Nuclei Settings(Riscv) -.. |image18| image:: /asserts/nucleistudio/intro/media/image20.png +.. |image18| image:: /asserts/nucleistudio/intro/image20.png :alt: work.nuworkspace文件 -.. |image19| image:: /asserts/nucleistudio/intro/media/image21.png +.. |image19| image:: /asserts/nucleistudio/intro/image21.png :alt: Nuclei Studio IDE软件包的下载界面 -.. |image20| image:: /asserts/nucleistudio/intro/media/image22.png +.. |image20| image:: /asserts/nucleistudio/intro/image22.png :alt: Nuclei Studio IDE压缩包文件内容 -.. |image21| image:: /asserts/nucleistudio/intro/media/image23.png +.. |image21| image:: /asserts/nucleistudio/intro/image23.png :alt: 双击“Nuclei Studio.exe”启动Nuclei Studio -.. |image22| image:: /asserts/nucleistudio/intro/media/image24.png +.. |image22| image:: /asserts/nucleistudio/intro/image24.png :alt: 公司Logo -.. |image23| image:: /asserts/nucleistudio/intro/media/image25.png +.. |image23| image:: /asserts/nucleistudio/intro/image25.png :alt: 第一次启动Nuclei Studio界面 diff --git a/source/ide/npk.rst b/source/ide/npk.rst index 1dbab98..db97d14 100644 --- a/source/ide/npk.rst +++ b/source/ide/npk.rst @@ -127,57 +127,57 @@ NPK包除了可以导入SDK,还可以方便的导入各种工具包,来扩展N |image18| -.. |image1| image:: /asserts/nucleistudio/npk/media/image2.png +.. |image1| image:: /asserts/nucleistudio/npk/image2.png -.. |image2| image:: /asserts/nucleistudio/npk/media/image3.png +.. |image2| image:: /asserts/nucleistudio/npk/image3.png -.. |image3| image:: /asserts/nucleistudio/npk/media/image4.png +.. |image3| image:: /asserts/nucleistudio/npk/image4.png -.. |image4| image:: /asserts/nucleistudio/npk/media/image5.png +.. |image4| image:: /asserts/nucleistudio/npk/image5.png -.. |image5| image:: /asserts/nucleistudio/npk/media/image6.png +.. |image5| image:: /asserts/nucleistudio/npk/image6.png -.. |image6| image:: /asserts/nucleistudio/npk/media/image7.png +.. |image6| image:: /asserts/nucleistudio/npk/image7.png -.. |image7| image:: /asserts/nucleistudio/npk/media/image8.png +.. |image7| image:: /asserts/nucleistudio/npk/image8.png -.. |image8| image:: /asserts/nucleistudio/npk/media/image9.png +.. |image8| image:: /asserts/nucleistudio/npk/image9.png -.. |image9| image:: /asserts/nucleistudio/npk/media/image10.png +.. |image9| image:: /asserts/nucleistudio/npk/image10.png -.. |image10| image:: /asserts/nucleistudio/npk/media/image11.png +.. |image10| image:: /asserts/nucleistudio/npk/image11.png -.. |image11| image:: /asserts/nucleistudio/npk/media/image12.png +.. |image11| image:: /asserts/nucleistudio/npk/image12.png -.. |image12| image:: /asserts/nucleistudio/npk/media/image13.png +.. |image12| image:: /asserts/nucleistudio/npk/image13.png -.. |image13| image:: /asserts/nucleistudio/npk/media/image14.png +.. |image13| image:: /asserts/nucleistudio/npk/image14.png -.. |image14| image:: /asserts/nucleistudio/npk/media/image15.png +.. |image14| image:: /asserts/nucleistudio/npk/image15.png -.. |image15| image:: /asserts/nucleistudio/npk/media/image16.png +.. |image15| image:: /asserts/nucleistudio/npk/image16.png -.. |image16| image:: /asserts/nucleistudio/npk/media/image17.png +.. |image16| image:: /asserts/nucleistudio/npk/image17.png -.. |image17| image:: /asserts/nucleistudio/npk/media/image18.png +.. |image17| image:: /asserts/nucleistudio/npk/image18.png -.. |image18| image:: /asserts/nucleistudio/npk/media/image19.png +.. |image18| image:: /asserts/nucleistudio/npk/image19.png diff --git a/source/ide/npkoverview.rst b/source/ide/npkoverview.rst index d464039..8538253 100644 --- a/source/ide/npkoverview.rst +++ b/source/ide/npkoverview.rst @@ -7,7 +7,7 @@ Nuclei Studio NPK 介绍 组件包主要由以下文件组成: -- 组件描述文件(基于YAML语言): ``npk.yml`` +- 组件描述文件(基于YAML语言): ``npk.yml`` - 组件相关代码以及说明文档 @@ -24,19 +24,19 @@ Nuclei Studio NPK 介绍 组件主要分为以下几大类型,分别是: -- csp: Core Support Package, 例如NMSIS -- ssp: SoC Support Package, 例如gd32vf103的SoC的支持包 -- bsp: Board Support Package,例如rvstar开发板板级支持的代码包 -- osp: RTOS Support Package, 例如各类RTOS支持包 -- app: Application Package,例如各类上层应用 -- mwp: Middleware Package,各类第三方中间件,例如语音识别,算法库之类的 -- sdk: Software Development Kit,一组预设定好的软件开发包,一般情况下里面会包含了CSP, SSP, BSP, APP类型的包,OSP和MWP类型的包可选加入 -- bdp: Bundle Package, 一组package,目前仅对app有效 +- **csp:** Core Support Package, 例如NMSIS +- **ssp:** SoC Support Package, 例如gd32vf103的SoC的支持包 +- **bsp:** Board Support Package,例如rvstar开发板板级支持的代码包 +- **osp:** RTOS Support Package, 例如各类RTOS支持包 +- **app:** Application Package,例如各类上层应用 +- **mwp:** Middleware Package,各类第三方中间件,例如语音识别,算法库之类的 +- **sdk:** Software Development Kit,一组预设定好的软件开发包,一般情况下里面会包含了CSP, SSP, BSP, APP类型的包,OSP和MWP类型的包可选加入 +- **bdp:** Bundle Package, 一组package,目前仅对app有效 以下是比较特殊的类型,主要用于工具包和模版包 -- tool: Tool Package,各类工具组件包,可放入其他需要引用或参考的文件 -- tpp: Template Package, 模板类型,可以用于创建csp/ssp/bsp/osp/app/mwp/sdk的模板工程,该类型比较特殊,描述文件名称为 **npk_template.yml** +- **tool:** Tool Package,各类工具组件包,可放入其他需要引用或参考的文件 +- **tpp:** Template Package, 模板类型,可以用于创建csp/ssp/bsp/osp/app/mwp/sdk的模板工程,该类型比较特殊,描述文件名称为 **npk_template.yml** 描述文件通用定义 ~~~~~~~~~~~~~~~~~~~~~ @@ -340,7 +340,7 @@ Nuclei Studio NPK 介绍 内容约定 ~~~~~~~~~~~~~~ -为了保证 `npk.yml`文件的可读性与简约性,对 ``npk.yml`` 文件的存储制定如下约定: +为了保证 ``npk.yml`` 文件的可读性与简约性,对 ``npk.yml`` 文件的存储制定如下约定: * 各字段的存储顺序请保持与模板一致,数据与DICT 按读入时顺序保存 * 各字段建议适当加上注释,尤其是那种需要解释的地方 @@ -375,7 +375,7 @@ zip包内容规范 * sdk > ssp > bsp > osp > mwp > csp > app * 如果判定出包的类型存在多个相同的npk,则该包不合法,不允许导入,并提示 * 该类型的包不允许存在多个该类型的npk文件 -* 如果是``sdk``类型的包,则必须包含至少一个``ssp``和依赖于该``ssp``的``bsp``文件,以及至少一个``app``类型的文件,允许存在其他类型的包 +* 如果是 ``sdk`` 类型的包,则必须包含至少一个 ``ssp`` 和依赖于该 ``ssp`` 的 ``bsp`` 文件,以及至少一个 ``app`` 类型的文件,允许存在其他类型的包 * 如果是其他类型的包,则里面包含的其他npk,必须显式依赖于该包 包依赖关系处理 @@ -383,30 +383,30 @@ zip包内容规范 包依赖关系的处理涉及到如何能够将包拆分并形成合理的依赖关系,便于包的独立维护。这里对不同类型的包的依赖处理进行详细的分析。 -依赖通过 ``dependencies`` 字段下的依赖列表来控制,支持依赖特定owner的某个name,某个version版本的包, 查找规则为 ``owner/name:version`` ,如果owner未定义,则默认为该npk文件中定义的owner,如果 ``version`` 未定义,则优先在同组件包查找,否则取最新的包。 +依赖通过 ``dependencies`` 字段下的依赖列表来控制,支持依赖特定owner的某个name,某个version版本的包,查找规则为 ``owner/name:version`` ,如果owner未定义,则默认为该npk文件中定义的owner,如果 ``version`` 未定义,则优先在同组件包查找,否则取最新的包。 csp Core Support Package依赖 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ csp类型的包是处理器内核CORE支持的软件包,目前针对Nuclei RISC-V内核,我们主要推广NMSIS这样的开源软件支持包。 -一般情况下,csp类型的包是非常底层的包,这里不支持依赖ssp/bsp/mwp/rtos/app这样的类型的包。但是可以依赖sdk类型的包,表示该包属于依赖的sdk包的环境中。 +一般情况下,csp类型的包是非常底层的包,这里不支持依赖 ``ssp/bsp/mwp/rtos/app`` 这样的类型的包。但是可以依赖sdk类型的包,表示该包属于依赖的sdk包的环境中。 ssp SoC Support Package依赖 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -ssp类型的包是SoC或者芯片的支持的软件包,例如gd32vf103, demosoc这样SoC的支持软件包。 +ssp类型的包是SoC或者芯片的支持的软件包,例如 ``gd32vf103`` , ``demosoc`` 这样SoC的支持软件包。 -ssp软件包仅可以依赖csp/mwp/osp这样的软件包,如果依赖了这三种类型的软件包,则表示在工程创建的时候或者是代码引入的时候,这三类软件包需要导入代码。 **而如果依赖sdk类型的软件包,则表示该ssp类型的包属于依赖的sdk类型的软件包的环境。** +ssp软件包仅可以依赖 ``csp/mwp/osp`` 这样的软件包,如果依赖了这三种类型的软件包,则表示在工程创建的时候或者是代码引入的时候,这三类软件包需要导入代码。 **而如果依赖sdk类型的软件包,则表示该ssp类型的包属于依赖的sdk类型的软件包的环境。** -理论上用户可以创建一个ssp软件包,不依赖任何csp/mwp/rtos的软件包,也不属于sdk类型的软件包。 **osp** 类型软件包仅可以依赖一个。 +理论上用户可以创建一个ssp软件包,不依赖任何 ``csp/mwp/rtos`` 的软件包,也不属于sdk类型的软件包。 **osp** 类型软件包仅可以依赖一个。 bsp Board Support Package依赖 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -bsp类型的包是针对基于某款SoC/芯片做的开发板而推出的软件支持包,例如gd32vf103-rvstar这款开发板的bsp软件包。 +bsp类型的包是针对基于某款SoC/芯片做的开发板而推出的软件支持包,例如 ``gd32vf103-rvstar`` 这款开发板的bsp软件包。 -bsp软件包仅可以依赖ssp/csp/mwp/osp这样的软件包, 如果依赖了这几种类型的软件包,则表示在工程创建的时候或者是代码引入的时候,这类软件包需要导入代码。 **而如果依赖sdk类型的软件包,则表示该ssp类型的包属于依赖的sdk类型的软件包的环境。** +bsp软件包仅可以依赖 ``ssp/csp/mwp/osp`` 这样的软件包, 如果依赖了这几种类型的软件包,则表示在工程创建的时候或者是代码引入的时候,这类软件包需要导入代码。 **而如果依赖sdk类型的软件包,则表示该ssp类型的包属于依赖的sdk类型的软件包的环境。** 理论上用户可以创建一个bsp软件包,不依赖任何软件包。 **osp** 类型软件包仅可以依赖一个。 @@ -415,14 +415,14 @@ osp OS Support Package依赖 osp类型的包是指特定的RTOS的软件支持包,例如freertos,ucosii之类的。 -osp类型的包仅可以依赖ssp/csp/mwp类型的软件包,如果依赖了这几种类型的软件包,则表示在工程创建的时候或者是代码引入的时候,这类软件包需要导入代码。 **而如果依赖sdk类型的软件包,则表示该ssp类型的包属于依赖的sdk类型的软件包的环境。** +osp类型的包仅可以依赖 ``ssp/csp/mwp`` 类型的软件包,如果依赖了这几种类型的软件包,则表示在工程创建的时候或者是代码引入的时候,这类软件包需要导入代码。 **而如果依赖sdk类型的软件包,则表示该ssp类型的包属于依赖的sdk类型的软件包的环境。** mwp Middleware Support Package依赖 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -mwp类型的软件包是指中间件类型的软件包,例如某个语音算法的库,某种物联网连接库如mqtt, coap之类。 +mwp类型的软件包是指中间件类型的软件包,例如某个语音算法的库,某种物联网连接库如 ``mqtt`` , ``coap`` 之类。 -mwp类型的包仅可以依赖bsp/ssp/csp/mwp/osp类型的软件包,但是不建议直接依赖bsp/ssp,在创建middleware的时候尽量保证其通用性,可以很好被集成到其他的软件中。 +mwp类型的包仅可以依赖 ``bsp/ssp/csp/mwp/osp`` 类型的软件包,但是不建议直接依赖 ``bsp/ssp`` ,在创建middleware的时候尽量保证其通用性,可以很好被集成到其他的软件中。 sdk Software Development Kit Package依赖 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -441,31 +441,31 @@ sdk类型的软件包是一类非常特殊的软件包,本身并不会有额 模块说明 ----------- -从上述描述文件中可以看出,一个标准的npk.yml实际是上由几个大块组成的,而在实现应用中,我们并不一定会完全用到,一个合规的npk.yml文件,只要拥有基本的信息,就是可以正常给Nuclei Studio使用。 +从上述描述文件中可以看出,一个标准的 ``npk.yml`` 实际是上由几个大块组成的,而在实现应用中,我们并不一定会完全用到,一个合规的 ``npk.yml`` 文件,只要拥有基本的信息,就是可以正常给Nuclei Studio使用。 Package Base Information ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 这一块分信息,是NPK的基础的信息,很多关键的信息在这部分内容中需要描述清楚。其中着重说明几个字段。 -* name +* **name** 必填,NPK的名称ID,不要有空格,符合C语言命名规范,英文名称,是唯一名称ID。 -* version +* **version** 选填,如不填,默认为空,建议采用SEMVER2.0版本号管理,只能数字打头, 例如1.2.3 -* type +* **type** 必填, 可选类型值有csp, ssp, bsp, osp, app, mwp, sdk, tpp, tool -* os +* **os** 选填,标明该NPK适用于什么类型的Nuclei Studio,目前我们发行的Nuclei Studio有win64和lin64两个版本。OS类型可以填win32、win64、lin64、lin32,但目前组件包上传页面只支持win64和lin64,该字段只存在tool类型package -* owner +* **owner** 必填,组件包的拥有者,该ID一般为认证开发者ID,便于后期进行权限查找匹配。如果该NPK仅作本地测试,可以随意。 @@ -490,35 +490,35 @@ Package Configurations **Configuration** 对象组会包含多个对象,而每个对象有固定的结构。 -* XXX(变量名) +* **XXX(变量名)** 变量名可以随意,简合c++的命名规范即可。在后面部分会以${XXX}或${XXX.XX}的方式引用。 -* default +* **default** 默认值,可选项。 -* type +* **type** 这个变量的类型,为了支持更丰富的UI体验,我们在NPK中定义了很多的UI组件类型,具体请参看后面章节。 -* global +* **global** 标明此字段是否在工程创建时显示在引导页面中。 -* tips +* **tips** 对该变量的说明信息,主要用于UI的tips事件。 -* hints +* **hints** 对该变量的说明信息,如值的示例等,主要用于UI的hints事件。 -* description +* **description** 此变量的NPK中的说明描述。 -* UI组件信息 +* **UI组件信息** 支持的类型有choice, list, checkbox, multicheckbox, text等,具体信息参见 @@ -527,15 +527,15 @@ Source Code Management **codemanage** 描述的是跟模板工程有关的内容,大多的时候,我们的NPK会包括很多复杂的功能,需要创建某个一个具体的工程的时候,我们又只需要一些具体的文件,同时需要配置这些文件的信息。**codemanage** 就是将这些信息描述出来,它包含以下关键字: -* custom +* **custom** 默认为false, 当为true时,这个installdir就表示直接安装的目录 -* srcroot +* **srcroot** 默认为 ``.`` , 表示当前 ``npk.yml`` 所在目录,可以是相对路径, 例如 ``../`` , ``../bsp`` 等;需要注意的是,设置了这个以后,对应的copyfiles/incdirs/libdirs的路径的根目录均受到影响,就会使用新设置的和这个路径 -* installdir +* **installdir** 希望代码安装的目录名称,仅限英文,满足C语言命名格式 @@ -555,30 +555,30 @@ Source Code Management .. note:: - 2023.05.26 新增 copyfiles/incdirs/libdirs 均支持 ../../ 这样的相对上级目录,但是安装或者设置路径的时候,均设置到 下面 + 2023.05.26 新增 ``copyfiles/incdirs/libdirs`` 均支持 ``../../`` 这样的相对上级目录,但是安装或者设置路径的时候,均设置到 ```` 下面 - 例如: path: ["../common/"] 就拷贝上一级目录的common, 并放在/common下面, + 例如: ``path: ["../common/"]`` 就拷贝上一级目录的 ``common`` , 并放在 ``/common`` 下面, - 如果下面有common这个目录,则创建 R1L_common, 如果是 ../../common, 则创建 R2L_common, + 如果下面有 ``common`` 这个目录,则创建 ``R1L_common`` , 如果是 ``../../common`` , 则创建 ``R2L_common`` , - 这种方案不考虑了,直接创建同名目录,同名文件直接覆盖,建议采用 `srcroot: ..` 来解决问题对应的incdirs/libdirs + 这种方案不考虑了,直接创建同名目录,同名文件直接覆盖,建议采用 ``srcroot: ..`` 来解决问题对应的 ``incdirs/libdirs`` 如果遇到这种相对路径,也需要以最终安装到路径以及文件名为准 -* copyfiles +* **copyfiles** 待拷贝的文件或者文件夹,这里是指所有的目录或者文件,支持 ``../`` 、 ``*`` 、 ``*.*`` ,给结合srcroot一起使用, -* incdirs +* **incdirs** 必填,加入头文件目录列表,Nuclei Studio会进行补全,最终的路径是相对于工程根目录的路径。 -* libdirs +* **libdirs** 可选,lib库所在目录,Nuclei Studio会进行补全,最终的路径是相对于工程根目录的路径。 -* ldlibs +* **ldlibs** 可选的需要链接的库,Nuclei Studio会进行补全,最终的路径是相对于工程根目录的路径。 @@ -590,17 +590,17 @@ Set Configuration for other packages **setconfig** 是一个对象组,可以无限扩展,每个对象中有三个字段来描述一个对象。 -* config +* **config** 变量名,遵循C++命名规范,一般变量XXX,在其它部分以${XXX}的方式引用 该变量名不唯一,可以通过条件进行判定生效,也遵循覆盖规则app > mwp > osp > bsp > ssp > csp,进行自动覆盖。 -* value +* **value** 变量的值 -* condition +* **condition** 变量的条件,只有条件生效时,该变量的该值才会生效 @@ -609,87 +609,87 @@ Build Configuration 设置工程的编译工具和编译选项的配置,它的关键字包含以下几个固定字段。 -* type +* **type** 支持的编译工具的类型,值一般为gcc、clang、common。目前只支持gcc、clang两种,因为编译选项的配置有一些是相同的,为了提高代码的复用性,我们又添加common类型。 -* description +* **description** 对此编译工具的说明。 -* toolchain_name +* **toolchain_name** 重要字段,编译工具名字。 -* cross_prefix +* **cross_prefix** 重要字段,编译工具的前缀。 -* unflags +* **unflags** 在buildconfig section中的 ``common_flags/cflags/asmflags/ldflags/cxxflags`` 中生效,用于删掉之前已经定义的flags。 -* undefines +* **undefines** 在buildconfig section中的 ``common_defines/cdefines/asmdefines/cxxdefines`` 中生效,用于删掉之前已经定义的defines。(字符串完全匹配,则生效) -* common_flags +* **common_flags** 用的编译选项,将会添加到cflags, asmflags, cxxflags上,留空表示没有任何选项。 -* ldflags +* **ldflags** 链接选项列表,留空表示没有任何选项。 -* linkscript +* **linkscript** 链接脚本的定义,必须在bsp/ssp中定义,留空表示没有任何选项。 -* cflags +* **cflags** C编译选项,留空表示没有任何选项。 -* asmflags +* **asmflags** ASM编译选项,留空表示没有任何选项。 -* cxxflags +* **cxxflags** CXX编译选项,留空表示没有任何选项。 -* common_defines +* **common_defines** 通用的宏定义,留空表示没有任何选项。 -* cdefines +* **cdefines** C的宏定义,留空表示没有任何选项。 -* asmdefines +* **asmdefines** ASM的宏定义,留空表示没有任何选项。 -* cxxdefines +* **cxxdefines** CXX的宏定义,留空表示没有任何选项。 -* prebuild_steps +* **prebuild_steps** - * command + * **command** 编译前执行的命令,留空表示没有任何选项。 - * description + * **description** 编译前执行的命令的说明,留空表示没有任何选项。 -* postbuild_steps +* **postbuild_steps** - * command + * **command** 编译后执行的命令,留空表示没有任何选项。 - * description + * **description** 编译后执行的命令的说明,留空表示没有任何选项。 @@ -698,15 +698,15 @@ Debug Configuration 设置工程的Debug类型及相关参数的配置,它的关键字包含以下几个固定字段,可以不用配,如果配置了,在工程生成的时候,Nuclei Studio会根据这里面的内容,生成了个launch文件,同时可以根据相关内容进行工程的Debug。 -* type +* **type** Debug类型,目前支持GDB Custom 、GDB SEGGER J-Link、 GDB OpenOCD、 GDB Nuclei QEMU、 Nuclei RVProf -* description +* **description** 对支持的Custom Jlink OpenOCD Qemu RVProf的说明 -* configs +* **configs** 对应的Debug类型的参数,所有的参数,都是以key-value的方式出现,因为每中Debug类型所需参数不同,对应的情况也不同,更详细的说明如下。 @@ -1212,7 +1212,7 @@ NPK中提供了丰富的UI组件,这些组件的字段里面都会有default, default表示默认值,description表示该选项的含义,global表示这个选项是否在工程创建时显示(true),或者仅仅内部传参使用(false)。 -* Choice 单项选择框 +* **Choice 单项选择框** .. code-block:: yaml @@ -1248,7 +1248,7 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image.png -* list 单项选择框 +* **list 单项选择框** .. code-block:: yaml @@ -1264,7 +1264,7 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-1.png -* checkbox 单项勾选框 +* **checkbox 单项勾选框** .. code-block:: yaml @@ -1279,7 +1279,8 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-2.png -* multicheckbox 穿梭选择框 +* **multicheckbox 穿梭选择框** + 下面提供2种写法 .. code-block:: yaml @@ -1317,7 +1318,7 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-4.png -* text 单行文本框 +* **text 单行文本框** .. code-block:: yaml @@ -1334,7 +1335,7 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-5.png -* multitext 多行文本框 +* **multitext 多行文本框** .. code-block:: yaml @@ -1352,7 +1353,8 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-6.png -* multichoice 多选下拉框 +* **multichoice 多选下拉框** + 下面提供2种写法 .. code-block:: yaml @@ -1391,7 +1393,7 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-8.png -* cascaderchoice 级联选择框 +* **cascaderchoice 级联选择框** .. code-block:: yaml @@ -1415,7 +1417,7 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-9.png -* switchbutton 开关 +* **switchbutton 开关** .. code-block:: yaml @@ -1430,7 +1432,7 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-10.png -* slider 数字选择框 +* **slider 数字选择框** .. code-block:: yaml @@ -1446,7 +1448,7 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-11.png -* spinner 数字选择框 +* **spinner 数字选择框** .. code-block:: yaml @@ -1463,7 +1465,7 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-12.png -* multispinner 多数字选择框 +* **multispinner 多数字选择框** .. code-block:: yaml @@ -1481,7 +1483,7 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-13.png -* multicheckbox_v2 多项勾选框 +* **multicheckbox_v2 多项勾选框** 下面提供2种写法 @@ -1521,7 +1523,7 @@ default表示默认值,description表示该选项的含义,global表示这 .. figure:: /asserts/nucleistudio/npk/image-15.png -* multiradio 单选框 +* **multiradio 单选框** 下面提供2种写法 @@ -1620,7 +1622,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 为了更好的描述NPK,我们定义了一些字段,以描述出各种关系,其中大部分字段如其字面意义,这里重点介绍以下几个关键字。 -* condition +* **condition** **condition** 在npk.yml中,使用很频繁,是自定义的一个关键字,用来处理逻辑关系,类似 **if** ,具体的使用如下。 @@ -1641,7 +1643,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 # 上述描术中flags的值,由condition决定,当在不同的场景时,flags的值会不同, # 又因为flags是一个数组类型,所以上述例子中flags会有多个值,最终使用是,是flags的值拼接成的字符串。 -* dependencies +* **dependencies** **dependencies** 在npk.yml中,用来描述NPK的依赖关系。 @@ -1679,7 +1681,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 在NPK(npk.yml)中,为了更好地满足各种不同的需求,我们特意定义了一些常用的函数。 -* upper +* **upper** 将字符串变大写 @@ -1688,7 +1690,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 ${linker_script} = "test" $(upper("${linker_script}CD")) => TESTCD -* lower +* **lower** 将字符串变小写 @@ -1697,7 +1699,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 ${linker_script} = "test" $(lower("${linker_script}cd")) => testcd -* contains +* **contains** 判断字符串中是否包含另一个字符串 @@ -1706,7 +1708,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 ${linker_script} = "test" $(contains(${linker_script}, nmsis) ) => false -* join +* **join** 将字符串连接数组 @@ -1714,7 +1716,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 $(join([a,b,c,v], '') => abcv -* concat +* **concat** 连接字符串成为新一字符串 @@ -1724,7 +1726,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 $(concat(${linker_script}, v) => testv -* strip +* **strip** 去掉字符串两端空格 @@ -1734,7 +1736,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 $(strip(${linker_script})) => test -* startswith +* **startswith** 判断字符串是否以xxx开头 @@ -1743,7 +1745,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 ${linker_script} = "testabcd" $(startswith(${linker_script}, test)) => true -* endswith +* **endswith** 判断字符串是否以xxx结尾 @@ -1752,7 +1754,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 ${linker_script} = "testabcd" $(endswith(${linker_script}, test)) => false -* arithop +* **arithop** 数学运算符,支持+、- 、* 、/、% 、?(三元运算)等常用运算符,不支持++、-- @@ -1762,7 +1764,7 @@ NPK的描述语言中,允许用户自义定一个变量,并在有依赖关 $(arithop(${linker_script}+22)) $(arithop(${linker_script}>22?1:0)) -* npack/npack_installdir +* **npack/npack_installdir** npack是否包含指定的npk @@ -1792,7 +1794,7 @@ npack_installdir 包含的npk的路径 # 这段描述,是当b.yml如果依赖a.yml时,就可以将config的值,设置为a.yml的目录下的/src/openocd.cfg -* list_get +* **list_get** 获取数组元素中指定脚标的值 @@ -1801,7 +1803,7 @@ npack_installdir 包含的npk的路径 ${nuclei_cache}=[ic,dc,ccm] $(list_get(${nuclei_cache},0)) -> ic -* list_set +* **list_set** 修改数组元素中指定脚标的值 @@ -1810,7 +1812,7 @@ npack_installdir 包含的npk的路径 ${nuclei_cache}=[ic,dc,ccm] $(list_set(${nuclei_cache},1,aa)) -> [ic,aa,ccm] -* list_del +* **list_del** 删除数组元素中指定脚标的值 @@ -1820,7 +1822,7 @@ npack_installdir 包含的npk的路径 $(list_del(${nuclei_cache},1)) -> [ic,ccm] -* list_add +* **list_add** 在数组元素指定脚标插入值 @@ -1829,7 +1831,7 @@ npack_installdir 包含的npk的路径 ${nuclei_cache}=[ic,dc,ccm] $(list_add(${nuclei_cache},2,aa)) -> [ic,dc,aa,ccm] -* list_size +* **list_size** 获取数组元素list的长度 @@ -1838,7 +1840,7 @@ npack_installdir 包含的npk的路径 ${nuclei_cache}=[ic,dc,ccm] $(list_size(${nuclei_cache})) -> 3 -* list_sub +* **list_sub** 从list中指定的位置开始,截取指定长度的list @@ -1851,7 +1853,7 @@ npack_installdir 包含的npk的路径 $(list_sub(${nuclei_cache},,2)) -> [ic,dc] -* subst +* **subst** 对字符串内部的指定字符串进行替换,第三个参数可为空 diff --git a/source/ide/projectbuild.rst b/source/ide/projectbuild.rst index 4bc27f4..d424582 100644 --- a/source/ide/projectbuild.rst +++ b/source/ide/projectbuild.rst @@ -7,21 +7,21 @@ Nuclei Studio 编译工程 |image1| -**RISC-V Nuclei GCC (riscv-nuclei-elf-gcc)** +* **RISC-V Nuclei GCC (riscv-nuclei-elf-gcc)** 早期NucleiStudio对GCC 10编译器的支持,Nuclei Studio 2023.10及之后版本弃用,如果用户需要对GCC 10的支持,需要自行下载Nuclei RISC-V Toolchain 2022.12(gcc10)并替换 ``/toolchain/gcc10`` 目录内容。 -**RISC-V GCC/Newlib (riscv64-unknown-elf-gcc)** +* **RISC-V GCC/Newlib (riscv64-unknown-elf-gcc)** Nuclei Studio 2023.10及之后对GCC 13编译器的支持,对应的软件包存放在 ``/toolchain/gcc`` 目录。 -**RISC-V Clang/Newlib (riscv64-unknown-elf-clang)** +* **RISC-V Clang/Newlib (riscv64-unknown-elf-clang)** Nuclei Studio 2023.10及之后对Clang 17编译器的支持,对应的软件包存放在 ``/toolchain/gcc`` 目录。 -**Terapines ZCC (zcc)** +* **Terapines ZCC (zcc)** -Nuclei Studio 2024.06版本对ZCC编译器的支持,对应的软件包存放在 ``/toolchain/zcc`` 目录。Terapines ZCC工具链工程的创建需要依赖Nuclei SDK\ **> 0.6.0之后**\ 的版本才可以,目前可以通过Nuclei SDK命令行的方式进行测试。 +Nuclei Studio 2024.06版本对ZCC编译器的支持,对应的软件包存放在 ``/toolchain/zcc`` 目录。Terapines ZCC工具链工程的创建需要依赖Nuclei SDK **> 0.6.0之后** 的版本才可以,目前可以通过Nuclei SDK命令行的方式进行测试。 编译工具 -------- @@ -29,9 +29,9 @@ Nuclei Studio 2024.06版本对ZCC编译器的支持,对应的软件包存放 Nuclei GNU Toolchain ~~~~~~~~~~~~~~~~~~~~ -GNU Toolchain 是由 GNU 项目提供的一套完整的软件开发工具链,它包括了编译器、调试器、链接器、库文件等一系列用于软件开发和构建的必需工具。GNU Toolchain 以其开源、跨平台、高度可定制和强大的功能特性,成为了全球开发者社区广泛使用的开发工具集。Nuclei Studio 2023.10之前的版本中集成了GCC 10;Nuclei Studio 2023.10及之后的版本中,集成了GCC 13。 +GNU Toolchain 是由 GNU 项目提供的一套完整的软件开发工具链,它包括了编译器、调试器、链接器、库文件等一系列用于软件开发和构建的必需工具。GNU Toolchain 以其开源、跨平台、高度可定制和强大的功能特性,成为了全球开发者社区广泛使用的开发工具集。Nuclei Studio 2023.10之前的版本中集成了 ``GCC 10`` ;Nuclei Studio 2023.10及之后的版本中,集成了 ``GCC 13`` 。 -在nuclei_sdk 0.5.0之后的版中,在创建工程时,用户可以选择Toolchain为RISC-V GCC/Newlib(riscv64-unknown-elf-gcc)则可以创建一个支持GCC 13编译的工程,NucleiStudio将默认将相对应的编译选项配置好。关于GCC 10与GCC 13工程的问题,可以参阅 :ref:`通过工具将工程转换成支持gcc 13的工程 ` 。 +在nuclei_sdk 0.5.0之后的版中,在创建工程时,用户可以选择Toolchain为 ``RISC-V GCC/Newlib(riscv64-unknown-elf-gcc)`` 则可以创建一个支持 ``GCC 13`` 编译的工程,NucleiStudio将默认将相对应的编译选项配置好。关于 ``GCC 10`` 与 ``GCC 13`` 工程的问题,可以参阅 :ref:`通过工具将工程转换成支持gcc 13的工程 ` 。 |image2| @@ -44,7 +44,7 @@ Nuclei LLVM Toolchain LLVM Toolchain是一套为C系列编程语言设计的完整工具链,旨在提供从源代码到可执行文件的编译和链接过程。LLVM Toolchain的核心组件包括Clang编译器、LLVM编译器基础设施以及相关的工具和库。LLVM Toolchain是一套功能强大、灵活可扩展的编译工具链,它采用了先进的编译技术和设计理念,为开发者提供了高效、便捷的编译和构建解决方案。Nuclei Studio 2023.10及之后的版本中,集成了LLVM Toolchain。 -在nuclei_sdk 0.5.0之后的版中,在创建工程时,用户可以选择Toolchain为RISC-V Clang/Newlib(riscv64-unknown-elf-clang)则可以创建一个支持Clang 17编译的工程,NucleiStudio将默认将相对应的编译选项配置好。 +在nuclei_sdk 0.5.0之后的版中,在创建工程时,用户可以选择Toolchain为 ``RISC-V Clang/Newlib(riscv64-unknown-elf-clang)`` 则可以创建一个支持 ``Clang 17`` 编译的工程,NucleiStudio将默认将相对应的编译选项配置好。 |image4| @@ -55,7 +55,7 @@ LLVM Toolchain是一套为C系列编程语言设计的完整工具链,旨在 Terapines ZCC ~~~~~~~~~~~~~ -Terapines ZCC是兆松科技研发的高性能RISC-V编译器。Nuclei Studio 2024.06版中对Terapines ZCC进行支持,\ **集成了ZCC Lite版本的工具链**\ ,如果需要更新,可以自行下载好Terapines ZCC后,替换 ``/toolchain/zcc`` 目录下的内容,可以在NucleiStudio中直接创建一个支持Terapines ZCC的工程,并使用Terapines ZCC进行编译。 +Terapines ZCC是兆松科技研发的高性能RISC-V编译器。Nuclei Studio 2024.06版中对Terapines ZCC进行支持, **集成了ZCC Lite版本的工具链** ,如果需要更新,可以自行下载好Terapines ZCC后,替换 ``/toolchain/zcc`` 目录下的内容,可以在NucleiStudio中直接创建一个支持Terapines ZCC的工程,并使用Terapines ZCC进行编译。 关于Terapines ZCC参见:https://products.terapines.com/downloads @@ -73,11 +73,11 @@ Nuclei SDK 工程设置工具 .. note:: 本工具目前仅支持Nuclei SDK,HBird SDK,Nuclei Subsystem SDK,不支持无模板手动创建的项目和基于Makefile创建的项目, 或者是自行创建维护的项目 -单击选中需要修改的工程,之后如图 6‑1打开 ``RV-Tools>SDK Configuration Tools`` ,可以打开修改编译选项的弹窗,\ **在2023.10版本以后,将直接打开Nuclei Settings页面**\ 。也可以单击要修改的工程后,点击工具栏的工程设置工具图标。 +单击选中需要修改的工程,之后如图 6‑1打开 ``RV-Tools>SDK Configuration Tools`` ,可以打开修改编译选项的弹窗, **在2023.10版本以后,将直接打开Nuclei Settings页面** 。也可以单击要修改的工程后,点击工具栏的工程设置工具图标。 |image8| -或者单击要修改的工程后,键盘按下ctrl+6。 +或者单击要修改的工程后,键盘按下 ``ctrl+6`` 。 |image9| @@ -93,11 +93,11 @@ SDK Configuration Tools各选项详细功能如下: - Core 为当前工程对应的内核。由于工具根据ARCH和ABI选项反推出对应的内核,而不同的内核可能有相同的ARCH和ABI选项,所以显示上可能会有所偏差,只要ARCH与ABI为正确的选项即可。此选项为方便快速切换内核选项使用。 -- 四个勾选项:Bitmanipulation Extension(RVB), Cryptography Extension(RVK), Packed SIMD/DSP Extension, Vector Extension(RVV) 用于选择对应的扩展指令集(B/K/P/V)。 +- 四个勾选项: ``Bitmanipulation Extension(RVB)`` , ``Cryptography Extension(RVK)`` , ``Packed SIMD/DSP Extension`` , ``Vector Extension(RVV)`` 用于选择对应的扩展指令集 ``(B/K/P/V)`` 。 .. note:: - 本功能在2023.10版本中移除,使用 Other Extensions 输入框来制定额外的扩展。 + 本功能在2023.10版本中移除,使用 ``Other Extensions`` 输入框来制定额外的扩展。 - ARCH对应的当前工程的arch选项, 根据Core和勾选项自动组合。 @@ -105,25 +105,25 @@ SDK Configuration Tools各选项详细功能如下: - Tuning根据不同级别处理器优化的gcc选项,选择Core会自动选择正确的Tuning选项,不建议自己调整。 -- Code Model针对RV32处理器,自动选择为Medium Low,而针对RV64处理器自动选择为Medium High,选择Core以后会自动选择合适的Code Model,其中RV64处理器必须使用Medium High. +- Code Model针对RV32处理器,自动选择为 ``Medium Low`` ,而针对RV64处理器自动选择为 ``Medium High`` ,选择Core以后会自动选择合适的Code Model,其中RV64处理器必须使用 ``Medium High`` 。 -- Download对应当前工程的下载模式,可以切换选择不同的下载模式,目前仅Nuclei FPGA评估开发板支持切换下载模式,RVSTAR仅有FLASHXIP模式。其中切换到flash模式会额外定义VECTOR_TABLE_REMAPPED宏,其他模式不会定义这个宏 +- Download对应当前工程的下载模式,可以切换选择不同的下载模式,目前仅Nuclei FPGA评估开发板支持切换下载模式,RVSTAR仅有 ``FLASHXIP`` 模式。其中切换到flash模式会额外定义 ``VECTOR_TABLE_REMAPPED`` 宏,其他模式不会定义这个宏 -- Select C Runtime Library对应的使用标准C库,\ **本功能在2023.10版本中移除**\ 。在工程创建的时候,如果创建的工程采用的是Newlib,则这里只能进行newlib版本的切换,如果创建的工程才用的是Nuclei C Runtime Library(libncrt),则这里只能进行libncrt版本的切换。 +- ``Select C Runtime Library`` 对应的使用标准C库, **本功能在2023.10版本中移除** 。在工程创建的时候,如果创建的工程采用的是Newlib,则这里只能进行newlib版本的切换,如果创建的工程才用的是 ``Nuclei C Runtime Library(libncrt)`` ,则这里只能进行libncrt版本的切换。 -- Optimization Level对应编译的优化等级。 +- ``Optimization Level`` 对应编译的优化等级。 -- Extra Common Flags对应的是额外的通用编译选项。可以添加额外的通用编译选项。 +- ``Extra Common Flags`` 对应的是额外的通用编译选项。可以添加额外的通用编译选项。 -- Extra C Flags对应的是额外的C编译选项。可以添加额外的C编译选项。 +- ``Extra C Flags`` 对应的是额外的C编译选项。可以添加额外的C编译选项。 -- Extra C++ Flags对应的是额外的C++编译选项。可以添加额外的C++编译选项。 +- ``Extra C++ Flags`` 对应的是额外的C++编译选项。可以添加额外的C++编译选项。 -- Extra ASM Flags对应的是额外的汇编编译选项。可以添加额外的汇编编译选项。 +- ``Extra ASM Flags`` 对应的是额外的汇编编译选项。可以添加额外的汇编编译选项。 -- Extra Link Flags对应的是额外的链接选项。如果此选项已经有默认选项并且需要增加编译选项,可以在编译选项开头或结尾处相隔一个空格字符再增加编译选项。 +- ``Extra Link Flags`` 对应的是额外的链接选项。如果此选项已经有默认选项并且需要增加编译选项,可以在编译选项开头或结尾处相隔一个空格字符再增加编译选项。 -根据需要修改以上的选项,这里我们修改优化等级为-Os优化生成可执行文件大小。点击save一键修改编译选项,save以后一定要先clean project,之后右击修改后的工程打开右键菜单,选择 ``Clean Project`` 清理一下工程,再点击锤子图标即可完成修改编译选项后重新编译工程。 +根据需要修改以上的选项,这里我们修改优化等级为 ``-Os`` 优化生成可执行文件大小。点击 ``save`` 一键修改编译选项, ``save`` 以后一定要先 ``clean project`` ,之后右击修改后的工程打开右键菜单,选择 ``Clean Project`` 清理一下工程,再点击锤子图标即可完成修改编译选项后重新编译工程。 |image12| @@ -138,7 +138,7 @@ Nuclei Studio中编译Hello World项目 在Nuclei Studio中编译Hello World项目的步骤如下。 -在编译工程前,建议先将项目清理一下。在Project Explorer栏中选中hello_world项目,单击鼠标右键,选择 ``Clean Project`` 。 +在编译工程前,建议先将项目清理一下。在 ``Project Explorer`` 栏中选中 ``hello_world`` 项目,单击鼠标右键,选择 ``Clean Project`` 。 |image13| @@ -148,59 +148,59 @@ Nuclei Studio中编译Hello World项目 编译成功后可以看到增加了Debug文件夹,各文件作用如下: -- hello_world.elf是生成的可执行文件。 +- ``hello_world.elf`` 是生成的可执行文件。 -- hello_world.hex是生成的Hex文件。 +- ``hello_world.hex`` 是生成的Hex文件。 -- hello_world.lst是生成的list文件,可以看到反汇编和简单的代码分部信息。 +- ``hello_world.lst`` 是生成的list文件,可以看到反汇编和简单的代码分部信息。 -- hello_world.map是生成的map文件,可以详细的看到生成的代码分布情况。 +- ``hello_world.map`` 是生成的map文件,可以详细的看到生成的代码分布情况。 |image15| -.. |image1| image:: /asserts/nucleistudio/projectbuild/media/image2.png +.. |image1| image:: /asserts/nucleistudio/projectbuild/image2.png -.. |image2| image:: /asserts/nucleistudio/projectbuild/media/image3.png +.. |image2| image:: /asserts/nucleistudio/projectbuild/image3.png -.. |image3| image:: /asserts/nucleistudio/projectbuild/media/image4.png +.. |image3| image:: /asserts/nucleistudio/projectbuild/image4.png -.. |image4| image:: /asserts/nucleistudio/projectbuild/media/image5.png +.. |image4| image:: /asserts/nucleistudio/projectbuild/image5.png -.. |image5| image:: /asserts/nucleistudio/projectbuild/media/image6.png +.. |image5| image:: /asserts/nucleistudio/projectbuild/image6.png -.. |image6| image:: /asserts/nucleistudio/projectbuild/media/image7.png +.. |image6| image:: /asserts/nucleistudio/projectbuild/image7.png -.. |image7| image:: /asserts/nucleistudio/projectbuild/media/image8.png +.. |image7| image:: /asserts/nucleistudio/projectbuild/image8.png -.. |image8| image:: /asserts/nucleistudio/projectbuild/media/image9.png +.. |image8| image:: /asserts/nucleistudio/projectbuild/image9.png -.. |image9| image:: /asserts/nucleistudio/projectbuild/media/image10.png +.. |image9| image:: /asserts/nucleistudio/projectbuild/image10.png -.. |image10| image:: /asserts/nucleistudio/projectbuild/media/image11.png +.. |image10| image:: /asserts/nucleistudio/projectbuild/image11.png -.. |image11| image:: /asserts/nucleistudio/projectbuild/media/image12.png +.. |image11| image:: /asserts/nucleistudio/projectbuild/image12.png -.. |image12| image:: /asserts/nucleistudio/projectbuild/media/image13.png +.. |image12| image:: /asserts/nucleistudio/projectbuild/image13.png -.. |image13| image:: /asserts/nucleistudio/projectbuild/media/image14.png +.. |image13| image:: /asserts/nucleistudio/projectbuild/image14.png -.. |image14| image:: /asserts/nucleistudio/projectbuild/media/image15.png +.. |image14| image:: /asserts/nucleistudio/projectbuild/image15.png -.. |image15| image:: /asserts/nucleistudio/projectbuild/media/image16.png +.. |image15| image:: /asserts/nucleistudio/projectbuild/image16.png diff --git a/source/ide/projectnew.rst b/source/ide/projectnew.rst index 71dac5b..b6f5a9e 100644 --- a/source/ide/projectnew.rst +++ b/source/ide/projectnew.rst @@ -47,9 +47,9 @@ Nuclei Studio 创建工程 - Project name:项目命名。这里设置为 ``1_helloworld`` - - Project Example:选Helloworld。 + - Project Example:选 ``Helloworld`` 。 - - Toolchains:我们使用Nuclei GUN Toolchain。 + - Toolchains:我们使用 ``Nuclei GUN Toolchain`` 。 .. note:: @@ -59,15 +59,15 @@ Nuclei Studio 创建工程 蜂鸟开发板支持三种下载模式,以下为每种下载模式的简介,这里我们选择ILM模式。 -**ILM** +* **ILM** ILM下载模式程序将被直接下载在MCU的ILM中,并从ILM开始执行。ILM由SRAM组成,会掉电丢失。 -**FLASH** +* **FLASH** FLASH下载模式程序代码段的物理地址约束Flash区间,将代码段的逻辑地址约束在ILM的地址区间,意味着程序将被直接下载在MCU的Flash中,但是上电后要通过引导程序将代码段搬运到ILM中,然后从ILM中开始执行。程序被烧写在Flash中,不会掉电丢失。 -**FLASHXIP** +* **FLASHXIP** FLASHXIP下载模式程序代码段约束Flash区间,意味着程序将被直接下载在MCU的Flash中,并直接从Flash开始执行。程序被烧写在Flash中,不会掉电丢失。 @@ -87,7 +87,7 @@ FLASHXIP下载模式程序代码段约束Flash区间,意味着程序将被直 |image7| -用于调试使用的配置文件 ``Hello World_Debug_OpenOCD`` 已经自动生成。关于使用芯来蜂鸟调试器结合OpenOCD进行下载和调试的方法,可以查看第7章进行详细了解。 +用于调试使用的配置文件 ``Hello World_Debug_OpenOCD`` 已经自动生成。关于使用芯来蜂鸟调试器结合OpenOCD进行下载和调试的方法,可以查看 :ref:`使用蜂鸟调试器结合OpenOCD调试运行项目 ` 进行详细了解。 |image8| @@ -101,18 +101,18 @@ FLASHXIP下载模式程序代码段约束Flash区间,意味着程序将被直 将Nuclei Studio IDE写入到注册表 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -下载Nuclei Studio IDE 2022.12版,在安装包中多了两个文件install.bat/install.sh,在windows系统下,双击install.bat,因为这里需要写入注册表,所以需要一个用户授权,授权后安装成功;在linux系统下,需要在shell命令下执行install.sh文件。 +下载Nuclei Studio IDE 2022.12版,在安装包中多了两个文件 ``install.bat/install.sh`` ,在windows系统下,双击 ``install.bat`` ,因为这里需要写入注册表,所以需要一个用户授权,授权后安装成功;在linux系统下,需要在shell命令下执行 ``install.sh`` 文件。 |image9| -install.sh文件在运行后,有一个用户授权的界面,同意授权。 +``install.sh`` 文件在运行后,有一个用户授权的界面,同意授权。 |image10| 通过应用关联文件导入工程 ~~~~~~~~~~~~~~~~~~~~~~~~ -Nuclei Studio IDE 2022.12版创建工程test,在工程中会有一应用关联文件test.nuproject,如果ide的启动路径已写入注册表,双点test.nuproject文件,系统会自动启动Nuclei Studio IDE并将test工程导入到IDE中。 +Nuclei Studio IDE 2022.12版创建工程 ``test`` ,在工程中会有一应用关联文件 ``test.nuproject`` ,如果ide的启动路径已写入注册表,双点 ``test.nuproject`` 文件,系统会自动启动Nuclei Studio IDE并将test工程导入到IDE中。 |image11| @@ -122,7 +122,7 @@ Nuclei Studio IDE 2022.12版创建工程test,在工程中会有一应用关联 本节将介绍如何使用IDE从已有项目直接导入创建新项目,本文以N307的项目包为例进行导入,项目包存放在(\ https://github.com/riscv-mcu/Nuclei-Studio_IDE-Project-Package\ )。如需其它项目包请与芯来科技联系。 -在基于Windows的Nuclei Studio IDE开发环境中,如果用户使用 ``无模板手动创建工程`` ,也需要加载此项目包中的nuclei-sdk文件夹,相关内容会在下一节中具体介绍。 +在基于Windows的Nuclei Studio IDE开发环境中,如果用户使用 ``无模板手动创建工程`` ,也需要加载此项目包中的nuclei-sdk文件夹,相关内容会在 :ref:`无模板手动创建项目 ` 中具体介绍。 |image12| @@ -164,6 +164,8 @@ Nuclei Studio IDE 2022.12版创建工程test,在工程中会有一应用关联 |image17| +.. _ide_projectnew_16: + 无模板手动创建项目 ------------------ @@ -222,25 +224,25 @@ Board,内核为N307。该方法除了创建项目之外,还需要手动设 SDK源码(这里以0.3.9版本为例),链接如下:\ https://github.com/Nuclei-Software/nuclei-sdk/releases 。本节仅介绍将nuclei_sdk中helloworld需要的文件加入到项目的步骤,如果使用新版本的SDK,对应的目录结构可能有所调整,请自行解决,具体步骤如下: -进入Nuclei Studio的2_helloworld项目,按照如下步骤添加nuclei_sdk源文件。 +进入Nuclei Studio的 ``2_helloworld`` 项目,按照如下步骤添加nuclei_sdk源文件。 -在Project Explorer栏中选中2_helloworld项目,单击鼠标右键,选择 ``Properties`` 打开工程设置页面。 +在Project Explorer栏中选中 ``2_helloworld`` 项目,单击鼠标右键,选择 ``Properties`` 打开工程设置页面。 |image26| -在弹出的窗口中单击 ``Resource`` ,在右侧的Location栏目中单击其最右侧的箭头图标\ |image25|\ ,则会弹出文件窗口进入2_helloworld项目的文件夹位置。 +在弹出的窗口中单击 ``Resource`` ,在右侧的Location栏目中单击其最右侧的箭头图标\ |image25|\ ,则会弹出文件窗口进入 ``2_helloworld`` 项目的文件夹位置。 |image26| -将nuclei-eclipse_demo.rar压缩包中的nuclei_sdk文件夹复制放于2_helloworld项目的目录下。 +将nuclei-eclipse_demo.rar压缩包中的nuclei_sdk文件夹复制放于 ``2_helloworld`` 项目的目录下。 |image27| -回到Nuclei Studio,在Project Explorer栏中选中2_helloworld项目,单击鼠标右键,选择 ``Refresh`` 。 +回到Nuclei Studio,在Project Explorer栏中选中 ``2_helloworld`` 项目,单击鼠标右键,选择 ``Refresh`` 。 |image29| -Refresh之后2_helloworld项目的下便可以看到nuclei_sdk文件夹,至此便完成了nuclei_sdk源文件的导入。 +Refresh之后 ``2_helloworld`` 项目的下便可以看到nuclei_sdk文件夹,至此便完成了nuclei_sdk源文件的导入。 |image30| @@ -260,7 +262,7 @@ Refresh之后2_helloworld项目的下便可以看到nuclei_sdk文件夹,至此 选中Target Processor,我们的内核是N307,因此需要按照图所示勾选配置选项,分别如下。 - - Architecture:选择RV32I。 + - Architecture:选择 ``RV32I`` 。 - Multiply extension(RVM):需勾选。 @@ -270,7 +272,7 @@ Refresh之后2_helloworld项目的下便可以看到nuclei_sdk文件夹,至此 - Integer API:选择 ``ILP32`` 。 - - Floting Point ABI:选择single precision + - Floting Point ABI:选择 ``single precision`` - Code model:选择 ``Medium Any`` 。 @@ -281,10 +283,10 @@ Refresh之后2_helloworld项目的下便可以看到nuclei_sdk文件夹,至此 选中 ``Optimization`` ,按照图所示勾选配置选项。 - - Optimization Level:选择Optimization Most (-O2)。 + - Optimization Level:选择 ``Optimization Most (-O2)`` 。 .. note:: - 注意:在NucleiStudio 2024.06版本中新增了-Oz,用来优化编译后程序的尺寸。 + 注意:在NucleiStudio 2024.06版本中新增了 ``-Oz``,用来优化编译后程序的尺寸。 依次勾选: @@ -304,7 +306,7 @@ Refresh之后2_helloworld项目的下便可以看到nuclei_sdk文件夹,至此 选中Debugging,按照图中所示勾选配置选项,分别为: - - Debug Level:选择Default (-g)。 + - Debug Level:选择 ``Default (-g)`` 。 - 单击右下角的 ``Apply`` 按钮。 @@ -318,16 +320,16 @@ Refresh之后2_helloworld项目的下便可以看到nuclei_sdk文件夹,至此 - 在弹出的窗口中单击 ``Workspace`` 按钮。 - - 这里我们使用HummingBird评估板,所以可以选择ILM下载模式对应的gcc_hbird_ilm.ld文件。在弹出的窗口中选择Nuclei Studio文件包中的nuclei_sdk/SoC/hbird/Board/hbird_eval/Source/GCC文件夹下gcc_hbird_ilm.ld文件。其他下载模式切换此处文件,各文件详细介绍如下,可根据自己的实际情况选择。 + - 这里我们使用HummingBird评估板,所以可以选择ILM下载模式对应的 ``gcc_hbird_ilm.ld`` 文件。在弹出的窗口中选择Nuclei Studio文件包中的 ``nuclei_sdk/SoC/hbird/Board/hbird_eval/Source/GCC`` 文件夹下 ``gcc_hbird_ilm.ld`` 文件。其他下载模式切换此处文件,各文件详细介绍如下,可根据自己的实际情况选择。 - - gcc_hbird_ilm.ld脚本将程序代码段约束在ILM的地址区间,意味着程序将被直接下载在MCU的ILM中,并从ILM开始执行。ILM由SRAM组成,会掉电丢失。 + - ``gcc_hbird_ilm.ld`` 脚本将程序代码段约束在ILM的地址区间,意味着程序将被直接下载在MCU的ILM中,并从ILM开始执行。ILM由SRAM组成,会掉电丢失。 - - gcc_hbird_flash.ld脚本程序代码段的物理地址约束Flash区间,将代码段的逻辑地址约束在ILM的地址区间,意味着程序将被直接下载在MCU的Flash中,但是上电后要通过引导程序将代码段搬运到ILM中,然后从ILM中开始执行。 + - ``gcc_hbird_flash.ld`` 脚本程序代码段的物理地址约束Flash区间,将代码段的逻辑地址约束在ILM的地址区间,意味着程序将被直接下载在MCU的Flash中,但是上电后要通过引导程序将代码段搬运到ILM中,然后从ILM中开始执行。 - - gcc_hbird_flashxip.ld + - ``gcc_hbird_flashxip.ld`` 脚本程序代码段约束Flash区间,意味着程序将被直接下载在MCU的Flash中,并直接从Flash开始执行。程序被烧写在Flash中,不会掉电丢失。 - - 用户可以按照自己的需求选择合适的链接脚本。本节示例选择gcc_hbird_ilm.ld作为演示。 + - 用户可以按照自己的需求选择合适的链接脚本。本节示例选择 ``gcc_hbird_ilm.ld`` 作为演示。 - 设置完毕请单击右下角的 ``Apply`` 按钮。 @@ -383,7 +385,7 @@ Refresh之后2_helloworld项目的下便可以看到nuclei_sdk文件夹,至此 - 在右下角单击 ``Apply`` 完成配置。 -采用上述方法,依次添加nuclei_sdk目录下的SoC>hbird>Board>hbird_eval>Include,SoC>hbird>Common>Include和SoC>hbird>Common>Source>Stubs文件夹作为包含路径,并采用同样的方法为GNU RISC-V Cross C Compiler的Includes栏目设置包含路径。设置完成后的界面如下图所示。 +采用上述方法,依次添加nuclei_sdk目录下的 ``SoC>hbird>Board>hbird_eval>Include`` , ``SoC>hbird>Common>Include`` 和 ``SoC>hbird>Common>Source>Stubs`` 文件夹作为包含路径,并采用同样的方法为 ``GNU RISC-V Cross C Compiler`` 的 ``Includes`` 栏目设置包含路径。设置完成后的界面如下图所示。 |image39| @@ -419,138 +421,138 @@ Evaluation Board,所以SoC和Board都不必修改,如果使用其他开发 |image44| -.. |image1| image:: /asserts/nucleistudio/projectnew/media/image2.png +.. |image1| image:: /asserts/nucleistudio/projectnew/image2.png -.. |image2| image:: /asserts/nucleistudio/projectnew/media/image3.png +.. |image2| image:: /asserts/nucleistudio/projectnew/image3.png -.. |image3| image:: /asserts/nucleistudio/projectnew/media/image4.png +.. |image3| image:: /asserts/nucleistudio/projectnew/image4.png -.. |image4| image:: /asserts/nucleistudio/projectnew/media/image5.png +.. |image4| image:: /asserts/nucleistudio/projectnew/image5.png -.. |image5| image:: /asserts/nucleistudio/projectnew/media/image6.png +.. |image5| image:: /asserts/nucleistudio/projectnew/image6.png -.. |image51| image:: /asserts/nucleistudio/projectnew/media/image7.png +.. |image51| image:: /asserts/nucleistudio/projectnew/image7.png -.. |image6| image:: /asserts/nucleistudio/projectnew/media/image8.png +.. |image6| image:: /asserts/nucleistudio/projectnew/image8.png -.. |image7| image:: /asserts/nucleistudio/projectnew/media/image9.png +.. |image7| image:: /asserts/nucleistudio/projectnew/image9.png -.. |image8| image:: /asserts/nucleistudio/projectnew/media/image10.png +.. |image8| image:: /asserts/nucleistudio/projectnew/image10.png -.. |image9| image:: /asserts/nucleistudio/projectnew/media/image11.png +.. |image9| image:: /asserts/nucleistudio/projectnew/image11.png -.. |image10| image:: /asserts/nucleistudio/projectnew/media/image12.png +.. |image10| image:: /asserts/nucleistudio/projectnew/image12.png -.. |image11| image:: /asserts/nucleistudio/projectnew/media/image13.png +.. |image11| image:: /asserts/nucleistudio/projectnew/image13.png -.. |image12| image:: /asserts/nucleistudio/projectnew/media/image14.png +.. |image12| image:: /asserts/nucleistudio/projectnew/image14.png -.. |image13| image:: /asserts/nucleistudio/projectnew/media/image15.png +.. |image13| image:: /asserts/nucleistudio/projectnew/image15.png -.. |image14| image:: /asserts/nucleistudio/projectnew/media/image16.png +.. |image14| image:: /asserts/nucleistudio/projectnew/image16.png -.. |image15| image:: /asserts/nucleistudio/projectnew/media/image17.png +.. |image15| image:: /asserts/nucleistudio/projectnew/image17.png -.. |image16| image:: /asserts/nucleistudio/projectnew/media/image18.png +.. |image16| image:: /asserts/nucleistudio/projectnew/image18.png -.. |image17| image:: /asserts/nucleistudio/projectnew/media/image19.png +.. |image17| image:: /asserts/nucleistudio/projectnew/image19.png -.. |image18| image:: /asserts/nucleistudio/projectnew/media/image20.png +.. |image18| image:: /asserts/nucleistudio/projectnew/image20.png -.. |image19| image:: /asserts/nucleistudio/projectnew/media/image21.png +.. |image19| image:: /asserts/nucleistudio/projectnew/image21.png -.. |image20| image:: /asserts/nucleistudio/projectnew/media/image22.png +.. |image20| image:: /asserts/nucleistudio/projectnew/image22.png -.. |image21| image:: /asserts/nucleistudio/projectnew/media/image23.png +.. |image21| image:: /asserts/nucleistudio/projectnew/image23.png -.. |image22| image:: /asserts/nucleistudio/projectnew/media/image24.png +.. |image22| image:: /asserts/nucleistudio/projectnew/image24.png -.. |image23| image:: /asserts/nucleistudio/projectnew/media/image25.png +.. |image23| image:: /asserts/nucleistudio/projectnew/image25.png -.. |image24| image:: /asserts/nucleistudio/projectnew/media/image26.png +.. |image24| image:: /asserts/nucleistudio/projectnew/image26.png -.. |image25| image:: /asserts/nucleistudio/projectnew/media/image27.png +.. |image25| image:: /asserts/nucleistudio/projectnew/image27.png -.. |image26| image:: /asserts/nucleistudio/projectnew/media/image28.png +.. |image26| image:: /asserts/nucleistudio/projectnew/image28.png -.. |image27| image:: /asserts/nucleistudio/projectnew/media/image29.png +.. |image27| image:: /asserts/nucleistudio/projectnew/image29.png -.. |image28| image:: /asserts/nucleistudio/projectnew/media/image30.png +.. |image28| image:: /asserts/nucleistudio/projectnew/image30.png -.. |image29| image:: /asserts/nucleistudio/projectnew/media/image31.png +.. |image29| image:: /asserts/nucleistudio/projectnew/image31.png -.. |image30| image:: /asserts/nucleistudio/projectnew/media/image32.png +.. |image30| image:: /asserts/nucleistudio/projectnew/image32.png -.. |image31| image:: /asserts/nucleistudio/projectnew/media/image33.png +.. |image31| image:: /asserts/nucleistudio/projectnew/image33.png -.. |image32| image:: /asserts/nucleistudio/projectnew/media/image34.png +.. |image32| image:: /asserts/nucleistudio/projectnew/image34.png -.. |image33| image:: /asserts/nucleistudio/projectnew/media/image35.png +.. |image33| image:: /asserts/nucleistudio/projectnew/image35.png -.. |image34| image:: /asserts/nucleistudio/projectnew/media/image36.png +.. |image34| image:: /asserts/nucleistudio/projectnew/image36.png -.. |image35| image:: /asserts/nucleistudio/projectnew/media/image37.png +.. |image35| image:: /asserts/nucleistudio/projectnew/image37.png -.. |image36| image:: /asserts/nucleistudio/projectnew/media/image38.png +.. |image36| image:: /asserts/nucleistudio/projectnew/image38.png -.. |image37| image:: /asserts/nucleistudio/projectnew/media/image39.png +.. |image37| image:: /asserts/nucleistudio/projectnew/image39.png -.. |image38| image:: /asserts/nucleistudio/projectnew/media/image40.png +.. |image38| image:: /asserts/nucleistudio/projectnew/image40.png -.. |image39| image:: /asserts/nucleistudio/projectnew/media/image41.png +.. |image39| image:: /asserts/nucleistudio/projectnew/image41.png -.. |image40| image:: /asserts/nucleistudio/projectnew/media/image42.png +.. |image40| image:: /asserts/nucleistudio/projectnew/image42.png -.. |image41| image:: /asserts/nucleistudio/projectnew/media/image43.png +.. |image41| image:: /asserts/nucleistudio/projectnew/image43.png -.. |image42| image:: /asserts/nucleistudio/projectnew/media/image44.png +.. |image42| image:: /asserts/nucleistudio/projectnew/image44.png -.. |image43| image:: /asserts/nucleistudio/projectnew/media/image45.png +.. |image43| image:: /asserts/nucleistudio/projectnew/image45.png -.. |image44| image:: /asserts/nucleistudio/projectnew/media/image46.png +.. |image44| image:: /asserts/nucleistudio/projectnew/image46.png diff --git a/source/ide/projectrun.rst b/source/ide/projectrun.rst index 65b6455..e03ec81 100644 --- a/source/ide/projectrun.rst +++ b/source/ide/projectrun.rst @@ -8,22 +8,23 @@ Nuclei Studio 调试运行工程 调试模式管理 ------------ -在NucleiStudio中,使用Launch Bar管理不同的调试器,默认情况下,NucleiStudio会为OpenOCD、Jlink、Qemu生成对应的\*.launch调试文件,NucleiStudio识别到\*.launch文件后,会将其加入到Launch Bar中进行管理,用户可以通过以下三种方式来使用指定的调试模式。 +在NucleiStudio中,使用Launch Bar管理不同的调试器,默认情况下,NucleiStudio会为OpenOCD、Jlink、Qemu生成对应的 ``*.launch`` 调试文件,NucleiStudio识别到 ``*.launch`` 文件后,会将其加入到Launch Bar中进行管理,用户可以通过以下三种方式来使用指定的调试模式。 |image1| -通过点击工程中的\*.launch文件切换不同的调试模式,当用户单击工程中的某一个\*.launch文件时,NucleiStudio会将该文件设置为Launch Bar中的选中文件,然后就可以通过Launch Bar执行Run/Debug操作。 +通过点击工程中的 ``*.launch`` 文件切换不同的调试模式,当用户单击工程中的某一个 ``*.launch`` 文件时,NucleiStudio会将该文件设置为Launch Bar中的选中文件,然后就可以通过Launch Bar执行Run/Debug操作。 |image2| -在工程展开文件,找到\*.launch文件并在\*.launch文件上点击鼠标右键,在弹出菜单中选中Debug As/Run As,在下一级菜单中点对应的模式开始Run/Debug操作。 +在工程展开文件,找到 ``*.launch`` 文件并在 ``*.launch`` 文件上点击鼠标右键,在弹出菜单中选中 ``Debug As/Run As`` ,在下一级菜单中点对应的模式开始 ``Run/Debug`` 操作。 |image3| -用户可以通过Launch Bar中的下接框,来切换成不同的调试模式,在Launch Bar中点击展开按钮,然后选中对应的调试模式,并执行Run/Debug操作。 +用户可以通过Launch Bar中的下接框,来切换成不同的调试模式,在Launch Bar中点击展开按钮,然后选中对应的调试模式,并执行 ``Run/Debug`` 操作。 |image4| +.. _ide_projectrun_3: 使用蜂鸟调试器结合OpenOCD调试运行项目 ------------------------------------- @@ -79,23 +80,30 @@ Nuclei Studio 调试运行工程 - 4:断开调试器再重新连接到Linux系统中。 -- 5:使用ls /dev/ttyUSB*命令查看ttyUSB信息,参考输出如下:/dev/ttyUSB0 - /dev/ttyUSB1 +- 5:使用 ``ls /dev/ttyUSB*`` 命令查看 ``ttyUSB`` 信息,参考输出如下: -- 6:使用ls -l /dev/ttyUSB1命令查看分组信息,参考输出如下: crw-rw-r-- 1 - root plugdev 188, 1 Nov 28 12:53 /dev/ttyUSB1 + .. code-block:: shell + + /dev/ttyUSB0 + + /dev/ttyUSB1 + +- 6:使用ls -l /dev/ttyUSB1命令查看分组信息,参考输出如下: + + .. code-block:: shell + + crw-rw-r-- 1 root plugdev 188, 1 Nov 28 12:53 /dev/ttyUSB1 .. - 可以看到ttyUSB1已经加入plugdev组,接下来我们要将自己添加到plugdev组(不同环境可能名字不同,请根据实际情况修改)。使用whoami命令查看当前用户名,我们将其记录为< - your_user_name >。 + 可以看到ttyUSB1已经加入 ``plugdev`` 组,接下来我们要将自己添加到plugdev组(不同环境可能名字不同,请根据实际情况修改)。使用whoami命令查看当前用户名,我们将其记录为 ``< + your_user_name >`` 。 -- 7:使用sudo usermod -a -G plugdev - 命令将自己添加进plugdev组。加入以后一定要重启或者注销操作系统。 +- 7:使用 ``sudo usermod -a -G plugdev `` 命令将自己添加进plugdev组。加入以后一定要重启或者注销操作系统。 -- 8:再次确认当前用户名已属于plugdev组,使用groups命令,可以看到打印信息中有plugdev即成功将当前用户添加至plugdev组。如果没有可以尝试重启。 +- 8:再次确认当前用户名已属于 ``plugdev`` 组,使用 ``groups`` 命令,可以看到打印信息中有 ``plugdev`` 即成功将当前用户添加至plugdev组。如果没有可以尝试重启。 -- 9:查看gcc的依赖是否完整,如果有依赖需要安装,可以执行sudo apt install libncursesw5libtinfo5进行安装 +- 9:查看gcc的依赖是否完整,如果有依赖需要安装,可以执行 ``sudo apt install libncursesw5libtinfo5`` 进行安装 .. code-block:: shell @@ -103,7 +111,7 @@ Nuclei Studio 调试运行工程 ldd ./riscv-nuclei-elf-gdb - |image7| +|image7| Debug Configuration ~~~~~~~~~~~~~~~~~~~ @@ -115,7 +123,7 @@ Debug Configuration |image8| -用户可以展开工程,选中对应的test_debug_openocd.launch文件,在右键菜单中,可以Run as/Debug as->test_debug_openocd,就可以按照对应的Debug Configurations操作工程程了。 +用户可以展开工程,选中对应的 ``test_debug_openocd.launch`` 文件,在右键菜单中,可以 ``Run as/Debug as->test_debug_openocd`` ,就可以按照对应的Debug Configurations操作工程程了。 |image9| @@ -144,9 +152,9 @@ Debug Configuration 选择调试项目 ``hello_world_demo Debug`` 的Debugger菜单,在Config options栏目中填入 ``-f "nuclei_sdk/SoC/evalsoc/Board/nuclei_fpga_eval/openocd_evalsoc.cfg"`` ,以确保OpenOCD使用正确的配置文件。这里的配置文件(*nuclei_sdk/SoC/evalsoc/Board/nuclei_fpga_eval/openocd_evalsoc.cfg*)根据实际工程中openocd的配置文件路径而定。例如:如果使用makefile方式导入工程,修改此处的内容为 ``-f "SoC/evalsoc/Board/nuclei_fpga_eval/openocd_evalsoc.cfg"`` 。 -如果当前内核是RISC-V 32位内核,请确保Commands内容包含\ *set arch riscv:rv32* +如果当前内核是RISC-V 32位内核,请确保Commands内容包含 ``set arch riscv:rv32`` -如果当前内核为64位,应确保替换为\ *set arch riscv:rv64* +如果当前内核为64位,应确保替换为 ``set arch riscv:rv64`` |image14| @@ -176,7 +184,7 @@ Debug Configuration 使用Linux系统打开串口方法如下: -打开Nuclei Studio自带的Terminal终端,选择 ``Window>Show View>Terminal`` ,点击显示器图标打开串口设置选项。choose terminal选择Local Terminal,点击OK打开Terminal终端。 +打开Nuclei Studio自带的Terminal终端,选择 ``Window>Show View>Terminal`` ,点击显示器图标打开串口设置选项。choose terminal选择 ``Local Terminal`` ,点击OK打开Terminal终端。 |image19| @@ -290,7 +298,7 @@ Debug Configuration |image35| -用户可以展开工程,选中对应的test_debug_jlink.launch文件,在右键菜单中,可以Run as/Debug as->test_debug_jlink,就可以按照对应的Debug Configurations操作工程程了, +用户可以展开工程,选中对应的 ``test_debug_jlink.launch`` 文件,在右键菜单中,可以 ``Run as/Debug as->test_debug_jlink`` ,就可以按照对应的Debug Configurations操作工程程了, |image36| @@ -346,13 +354,12 @@ Debug Configuration |image43| -其中VTref连接到板子上V3.3的接口,其他部分连接到JTAG接口,各引脚的丝印就在旁边,一一对应连接即可,最后实物连接如下图。 +其中VTref连接到板子上 ``V3.3`` 的接口,其他部分连接到JTAG接口,各引脚的丝印就在旁边,一一对应连接即可,最后实物连接如下图。 |image431| -在开发板上调试之前,如果使用串口打印,需要连接JTAG上的串口引脚到自己的主机上,再打开串口以便观察Printf函数打印信息。如果使用RTT打印,需要打开J-Link -RTT Viewer查看printf打印信息。按照图中内容设置,选择USB方式连接。Specify Target Device根据使用的内核来修改,这里以N307为例。Target Interface & Speed 设置为1000kHz,可根据实际使用情况来修改。RTT Control Block选择Auto Detection。 +在开发板上调试之前,如果使用串口打印,需要连接JTAG上的串口引脚到自己的主机上,再打开串口以便观察Printf函数打印信息。如果使用RTT打印,需要打开 ``J-Link RTT Viewer`` 查看printf打印信息。按照图中内容设置,选择USB方式连接。Specify Target Device根据使用的内核来修改,这里以N307为例。Target Interface & Speed 设置为 ``1000kHz`` ,可根据实际使用情况来修改。RTT Control Block选择 ``Auto Detection`` 。 |image44| @@ -442,18 +449,23 @@ DLink是芯来科技基于RV Link,并在其基础上做功能迭代升级后 - 4:断开调试器再重新连接到Linux系统中。 -- 5:使用 ``ls /dev/ttyACM*`` 命令查看ttyACM信息,参考输出如下: ``/dev/ttyACM0 /dev/ttyACM1`` +- 5:使用 ``ls /dev/ttyACM*`` 命令查看ttyACM信息,参考输出如下: -- 6:使用 ``ls -l /dev/ttyACM0`` 命令查看分组信息,参考输出如下: ``crw-rw-r-- 1 root dialout 166, 0 6月 28 15:25 /dev/ttyACM0`` +.. code-block:: shell + + /dev/ttyACM0 /dev/ttyACM1 + +- 6:使用 ``ls -l /dev/ttyACM0`` 命令查看分组信息,参考输出如下, 可以看到ttyACM0已经被加入到dialout组,接下来我们要将自己添加到 ``dialout`` 组(不同环境可能名字不同,请根据实际情况修改)。使用whoami命令查看当前用户名,我们将其记录为 ``< your_user_name >`` 。 - 可以看到ttyACM0已经被加入到dialout组,接下来我们要将自己添加到dialout组(不同环境可能名字不同,请根据实际情况修改)。使用whoami命令查看当前用户名,我们将其记录为< - your_user_name >。 +.. code-block:: + + shell crw-rw-r-- 1 root dialout 166, 0 6月 28 15:25 /dev/ttyACM0 - 7:使用 ``sudo usermod -a -G dialout `` 命令将自己添加进dialout组。加入以后一定要重启或者注销操作系统。 - 8:再次确认当前用户名已属于dialout组,使用groups命令,可以看到打印信息中有dialout即成功将当前用户添加至dialout组。如果没有可以尝试重启。 -然后在Debugger选项卡内配置内容如下,因为在Custom Debugging中支持多种Mode,我们现在需要使用Dlink,所以选中Dlink;Server check flag是在NucleiStudio中用以确认服务是否正常启动,在Custom GDB Server中如果服务正常启动,会输出一段字符串,NucleiStudio通过判断该字符串以确认Custom GDB Server正常启动,在使用Dlink时这里可以为空;在Config options中需要配置对应的链接文件 ``dlink_gdbserver.cfg`` ,参考配置文件可以在 ``/toolchain/dlink`` 目录下找到。 +然后在Debugger选项卡内配置内容如下,因为在Custom Debugging中支持多种Mode,我们现在需要使用Dlink,所以选中Dlink; ``Server check flag`` 是在NucleiStudio中用以确认服务是否正常启动,在Custom GDB Server中如果服务正常启动,会输出一段字符串,NucleiStudio通过判断该字符串以确认Custom GDB Server正常启动,在使用Dlink时这里可以为空;在Config options中需要配置对应的链接文件 ``dlink_gdbserver.cfg`` ,参考配置文件可以在 ``/toolchain/dlink`` 目录下找到。 |image53| @@ -479,183 +491,183 @@ Dlink连接后,在串口工具下,可以看到两个COM口,一个COM串用 |image59| -.. |image1| image:: /asserts/nucleistudio/projectrun/media/image2.png +.. |image1| image:: /asserts/nucleistudio/projectrun/image2.png -.. |image2| image:: /asserts/nucleistudio/projectrun/media/image3.png +.. |image2| image:: /asserts/nucleistudio/projectrun/image3.png -.. |image3| image:: /asserts/nucleistudio/projectrun/media/image4.png +.. |image3| image:: /asserts/nucleistudio/projectrun/image4.png -.. |image4| image:: /asserts/nucleistudio/projectrun/media/image5.png +.. |image4| image:: /asserts/nucleistudio/projectrun/image5.png -.. |image5| image:: /asserts/nucleistudio/projectrun/media/image6.png +.. |image5| image:: /asserts/nucleistudio/projectrun/image6.png -.. |image6| image:: /asserts/nucleistudio/projectrun/media/image7.png +.. |image6| image:: /asserts/nucleistudio/projectrun/image7.png -.. |image7| image:: /asserts/nucleistudio/projectrun/media/image8.png +.. |image7| image:: /asserts/nucleistudio/projectrun/image8.png -.. |image8| image:: /asserts/nucleistudio/projectrun/media/image9.png +.. |image8| image:: /asserts/nucleistudio/projectrun/image9.png -.. |image9| image:: /asserts/nucleistudio/projectrun/media/image10.png +.. |image9| image:: /asserts/nucleistudio/projectrun/image10.png -.. |image10| image:: /asserts/nucleistudio/projectrun/media/image11.png +.. |image10| image:: /asserts/nucleistudio/projectrun/image11.png -.. |image11| image:: /asserts/nucleistudio/projectrun/media/image12.png +.. |image11| image:: /asserts/nucleistudio/projectrun/image12.png -.. |image12| image:: /asserts/nucleistudio/projectrun/media/image13.png +.. |image12| image:: /asserts/nucleistudio/projectrun/image13.png -.. |image13| image:: /asserts/nucleistudio/projectrun/media/image14.png +.. |image13| image:: /asserts/nucleistudio/projectrun/image14.png -.. |image14| image:: /asserts/nucleistudio/projectrun/media/image15.png +.. |image14| image:: /asserts/nucleistudio/projectrun/image15.png -.. |image15| image:: /asserts/nucleistudio/projectrun/media/image16.png +.. |image15| image:: /asserts/nucleistudio/projectrun/image16.png -.. |image16| image:: /asserts/nucleistudio/projectrun/media/image17.png +.. |image16| image:: /asserts/nucleistudio/projectrun/image17.png -.. |image17| image:: /asserts/nucleistudio/projectrun/media/image18.png +.. |image17| image:: /asserts/nucleistudio/projectrun/image18.png -.. |image18| image:: /asserts/nucleistudio/projectrun/media/image19.png +.. |image18| image:: /asserts/nucleistudio/projectrun/image19.png -.. |image19| image:: /asserts/nucleistudio/projectrun/media/image20.png +.. |image19| image:: /asserts/nucleistudio/projectrun/image20.png -.. |image20| image:: /asserts/nucleistudio/projectrun/media/image21.png +.. |image20| image:: /asserts/nucleistudio/projectrun/image21.png -.. |image21| image:: /asserts/nucleistudio/projectrun/media/image22.png +.. |image21| image:: /asserts/nucleistudio/projectrun/image22.png -.. |image22| image:: /asserts/nucleistudio/projectrun/media/image23.png +.. |image22| image:: /asserts/nucleistudio/projectrun/image23.png -.. |image23| image:: /asserts/nucleistudio/projectrun/media/image24.png +.. |image23| image:: /asserts/nucleistudio/projectrun/image24.png -.. |image24| image:: /asserts/nucleistudio/projectrun/media/image25.png +.. |image24| image:: /asserts/nucleistudio/projectrun/image25.png -.. |image25| image:: /asserts/nucleistudio/projectrun/media/image26.png +.. |image25| image:: /asserts/nucleistudio/projectrun/image26.png -.. |image26| image:: /asserts/nucleistudio/projectrun/media/image27.png +.. |image26| image:: /asserts/nucleistudio/projectrun/image27.png -.. |image27| image:: /asserts/nucleistudio/projectrun/media/image28.png +.. |image27| image:: /asserts/nucleistudio/projectrun/image28.png -.. |image28| image:: /asserts/nucleistudio/projectrun/media/image29.png +.. |image28| image:: /asserts/nucleistudio/projectrun/image29.png -.. |image29| image:: /asserts/nucleistudio/projectrun/media/image30.png +.. |image29| image:: /asserts/nucleistudio/projectrun/image30.png -.. |image30| image:: /asserts/nucleistudio/projectrun/media/image31.png +.. |image30| image:: /asserts/nucleistudio/projectrun/image31.png -.. |image31| image:: /asserts/nucleistudio/projectrun/media/image32.png +.. |image31| image:: /asserts/nucleistudio/projectrun/image32.png -.. |image32| image:: /asserts/nucleistudio/projectrun/media/image33.png +.. |image32| image:: /asserts/nucleistudio/projectrun/image33.png -.. |image33| image:: /asserts/nucleistudio/projectrun/media/image34.png +.. |image33| image:: /asserts/nucleistudio/projectrun/image34.png -.. |image34| image:: /asserts/nucleistudio/projectrun/media/image35.png +.. |image34| image:: /asserts/nucleistudio/projectrun/image35.png -.. |image35| image:: /asserts/nucleistudio/projectrun/media/image36.png +.. |image35| image:: /asserts/nucleistudio/projectrun/image36.png -.. |image36| image:: /asserts/nucleistudio/projectrun/media/image37.png +.. |image36| image:: /asserts/nucleistudio/projectrun/image37.png -.. |image37| image:: /asserts/nucleistudio/projectrun/media/image38.png +.. |image37| image:: /asserts/nucleistudio/projectrun/image38.png -.. |image38| image:: /asserts/nucleistudio/projectrun/media/image39.png +.. |image38| image:: /asserts/nucleistudio/projectrun/image39.png -.. |image39| image:: /asserts/nucleistudio/projectrun/media/image40.png +.. |image39| image:: /asserts/nucleistudio/projectrun/image40.png -.. |image40| image:: /asserts/nucleistudio/projectrun/media/image41.png +.. |image40| image:: /asserts/nucleistudio/projectrun/image41.png -.. |image41| image:: /asserts/nucleistudio/projectrun/media/image42.png +.. |image41| image:: /asserts/nucleistudio/projectrun/image42.png -.. |image42| image:: /asserts/nucleistudio/projectrun/media/image43.png +.. |image42| image:: /asserts/nucleistudio/projectrun/image43.png -.. |image43| image:: /asserts/nucleistudio/projectrun/media/image44.png +.. |image43| image:: /asserts/nucleistudio/projectrun/image44.png -.. |image431| image:: /asserts/nucleistudio/projectrun/media/image45.png +.. |image431| image:: /asserts/nucleistudio/projectrun/image45.png -.. |image44| image:: /asserts/nucleistudio/projectrun/media/image46.png +.. |image44| image:: /asserts/nucleistudio/projectrun/image46.png -.. |image45| image:: /asserts/nucleistudio/projectrun/media/image47.png +.. |image45| image:: /asserts/nucleistudio/projectrun/image47.png -.. |image46| image:: /asserts/nucleistudio/projectrun/media/image24.png +.. |image46| image:: /asserts/nucleistudio/projectrun/image24.png -.. |image47| image:: /asserts/nucleistudio/projectrun/media/image48.png +.. |image47| image:: /asserts/nucleistudio/projectrun/image48.png -.. |image48| image:: /asserts/nucleistudio/projectrun/media/image49.png +.. |image48| image:: /asserts/nucleistudio/projectrun/image49.png -.. |image49| image:: /asserts/nucleistudio/projectrun/media/image50.png +.. |image49| image:: /asserts/nucleistudio/projectrun/image50.png -.. |image50| image:: /asserts/nucleistudio/projectrun/media/image51.png +.. |image50| image:: /asserts/nucleistudio/projectrun/image51.png -.. |image51| image:: /asserts/nucleistudio/projectrun/media/image52.png +.. |image51| image:: /asserts/nucleistudio/projectrun/image52.png -.. |image52| image:: /asserts/nucleistudio/projectrun/media/image53.png +.. |image52| image:: /asserts/nucleistudio/projectrun/image53.png -.. |image53| image:: /asserts/nucleistudio/projectrun/media/image54.png +.. |image53| image:: /asserts/nucleistudio/projectrun/image54.png -.. |image54| image:: /asserts/nucleistudio/projectrun/media/image55.png +.. |image54| image:: /asserts/nucleistudio/projectrun/image55.png -.. |image55| image:: /asserts/nucleistudio/projectrun/media/image56.png +.. |image55| image:: /asserts/nucleistudio/projectrun/image56.png -.. |image56| image:: /asserts/nucleistudio/projectrun/media/image57.png +.. |image56| image:: /asserts/nucleistudio/projectrun/image57.png -.. |image57| image:: /asserts/nucleistudio/projectrun/media/image58.png +.. |image57| image:: /asserts/nucleistudio/projectrun/image58.png -.. |image58| image:: /asserts/nucleistudio/projectrun/media/image59.png +.. |image58| image:: /asserts/nucleistudio/projectrun/image59.png -.. |image59| image:: /asserts/nucleistudio/projectrun/media/image60.png +.. |image59| image:: /asserts/nucleistudio/projectrun/image60.png diff --git a/source/ide/update.rst b/source/ide/update.rst index 85fe832..05d1f7d 100644 --- a/source/ide/update.rst +++ b/source/ide/update.rst @@ -16,7 +16,9 @@ Nuclei Studio已经把工具链集成在IDE内部,工具链存放在Nuclei Stu - 将GCC或者OpenOCD的内容复制到对应的文件夹下,即可完成IDE工具链的更新,IDE自带的工具链的版本号记录在ReadMe.txt中。 - ..note:: 注意:要保证gcc所在的这一级目录文件夹名字不变,替换后保证bin文件夹所在层级是图中文件夹的子目录,中间不要有其他文件夹。 +.. note:: + + 注意:要保证gcc所在的这一级目录文件夹名字不变,替换后保证bin文件夹所在层级是图中文件夹的子目录,中间不要有其他文件夹。 |image1| @@ -38,15 +40,15 @@ Nuclei Studio支持IDE内在线升级,步骤如下。 |image4| -.. |image1| image:: /asserts/nucleistudio/update/media/image2.png +.. |image1| image:: /asserts/nucleistudio/update/image2.png -.. |image2| image:: /asserts/nucleistudio/update/media/image3.png +.. |image2| image:: /asserts/nucleistudio/update/image3.png -.. |image3| image:: /asserts/nucleistudio/update/media/image4.png +.. |image3| image:: /asserts/nucleistudio/update/image4.png -.. |image4| image:: /asserts/nucleistudio/update/media/image5.png +.. |image4| image:: /asserts/nucleistudio/update/image5.png