{"id":16357807,"url":"https://github.com/rsta2/unitest","last_synced_at":"2025-03-23T01:31:49.552Z","repository":{"id":86376488,"uuid":"243220050","full_name":"rsta2/unitest","owner":"rsta2","description":"Universal test program for Circle","archived":false,"fork":false,"pushed_at":"2024-11-08T05:44:03.000Z","size":133,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-01T20:11:34.026Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rsta2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-26T09:14:08.000Z","updated_at":"2024-11-08T05:44:06.000Z","dependencies_parsed_at":"2024-10-28T15:21:57.543Z","dependency_job_id":null,"html_url":"https://github.com/rsta2/unitest","commit_stats":{"total_commits":40,"total_committers":1,"mean_commits":40.0,"dds":0.0,"last_synced_commit":"57c3b47913a73096b8a6f50b3ca86fd2cb0fd54d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsta2%2Funitest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsta2%2Funitest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsta2%2Funitest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsta2%2Funitest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rsta2","download_url":"https://codeload.github.com/rsta2/unitest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244257252,"owners_count":20424131,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T02:04:10.734Z","updated_at":"2025-03-23T01:31:49.263Z","avatar_url":"https://github.com/rsta2.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Unitest\n=======\n\n\u003e Raspberry Pi is a trademark of Raspberry Pi Ltd.\n\n\u003e If you read this file in an editor you should switch line wrapping on.\n\nOverview\n--------\n\nUnitest is a multi-function test program for the Circle bare metal environment for the Raspberry Pi. It can be used as a demo of Circle features too.\n\nGetting\n-------\n\nNormally you need a *Git* client to get the Unitest source code. Go to the directory where you want to place Unitest on your hard disk and enter:\n\n\tgit clone https://github.com/rsta2/unitest.git unitest\n\tcd unitest\n\tgit submodule update --init\n\nThis will place the source code in the subdirectory *unitest/* and clones the submodule *circle* into the *unitest/circle/* subdirectory.\n\nBuilding\n--------\n\nUnitest uses the Circle bare metal build environment for the Raspberry Pi. You need an appropriate compiler toolchain for ARM processors to build it. Have a look at the Circle *README.md* file (in *circle/*) for further information on this (section *Building*). The build information herein is for Linux hosts only. For building on other hosts you have to adapt some script files. Unitest does currently not build on Raspbian itself.\n\nWhen the toolchain is installed on your computer you can build Unitest using the following commands:\n\n\t./configure 4 arm-none-eabi-\n\tmake clean\n\tmake -j\n\nThe `configure` command writes a *Config.mk* file for Circle. \"4\" is the major revision number of your Raspberry Pi (1, 2, 3, 4 or 5). The second (optional) parameter is the prefix of the commands of your toolchain and can be preceded with a path. Do not forget the dash at the end of the prefix!\n\nAn optional third parameter can be appended to specify the bit size of the ARM architecture to be used as build target. It can be \"32\" (default) or \"64\" (for Raspberry Pi 3, 4 and 5 only).\n\nIf the build was successful, you find the executable image file of Unitest in the *src/* subdirectory with the name *kernel.img* (Raspberry Pi 1), *kernel7.img* (Raspberry Pi 2), *kernel8-32.img* (Raspberry Pi 3) or *kernel7l.img* (Raspberry Pi 4).\n\nInstallation\n------------\n\nYou will need a SD card with FAT16 or FAT32 partition to install Unitest. This partition must be the first file system on the SD card. You have to copy the *kernel???.img* file, built in the previous step, to this FAT partition. All files have to be placed in the root directory of this partition.\n\nFurthermore you need the Raspberry Pi firmware. You can get it as follows:\n\n\tcd circle/boot\n\tmake\n\nYou have to copy the three files *bootcode.bin*, *start.elf* and *fixup.dat* from the *circle/boot/* subdirectory to the FAT partition on the SD card. The Raspberry Pi 4 and 5 require different firmware files. Please read the file *circle/boot/README* for details!\n\nPut the SD card into the card reader of your Raspberry Pi.\n\nUsing\n-----\n\nBefore powering on your Raspberry Pi, the following devices have to be attached:\n\n* HDMI display\n* USB PC keyboard\n* Ethernet connection (for using network functions)\n\nAlternatively you can connect a serial terminal via GPIO14/15. The HDMI display and USB PC keyboard are not needed then.\n\nNow power on your Raspberry Pi and wait for the prompt. You can display a list of the available commands using the \"help\" command:\n\n\tCommand                 Description                             Alias\n\n\truntest TEST            Run the given test                      run\n\tstatus [cpu|mem|task]   Show CPU (default), memory, task status st\n\tshow [devs]             Show devices\n\tsetspeed low|max        Set CPU speed low or to maximum\n\ttask [susp|res] TASK    Suspend or resume task\n\tntp HOST [[-]MIN]       Set NTP server and time difference\n\tsyslog HOST [PORT]      Set syslog server\n\tsleep SECS              Sleep SECS seconds\n\tclear                   Clear the screen\n\treboot                  Reboot the system\n\thelp [tests]            This help or info about the tests\n\n\tNumerical parameters can be given decimal or in hex (with \"0x\" prefix).\n\tMultiple commands can be entered on one line.\n\nHelp about the different tests will be displayed with the command \"help tests\":\n\n\tTest            Parameters              Description\n\n\tfractal         [MAXITERATION]          Display Mandelbrot image\n\tfiles           PARTITION [COUNT]       Write and read files\n\tfatfs           SD:|USB: [COUNT]        Write and read files using FatFs\n\tshowmbr         DEVICE                  Show partitions from Master Boot Block\n\tsound           DEVICE [LHZ [RHZ]]      Play tone on sndpwm, sndi2s, sndhdmi, sndusb or sndvchiq\n\tiperf           [HOST]                  Run iperf2 server (default) or client\n\tvchiqecho       [BLKCOUNT [BLKSIZE]]    Send data blocks via VCHIQ with echo\n\tvcgencmd        CMD [ARG...]            Generate VC command\n\n\tTests can be aborted by pressing Ctrl-Alt-Del or ^C on serial interface.\n\nSome commands and tests require parameters, which are given in upper case letters in the help screens. Optional parameters are enclosed in []. The following table lists the different parameters:\n\n| Parameter    | Type    | Description (default value)                           | Range      |\n| ------------ | ------- | ----------------------------------------------------- | ---------- |\n| TEST         | string  | Name of a test (see \"help tests\")                     |            |\n| DEVICE       | string  | Name of block or sound device (e.g. \"emmc1\")          |            |\n| PARTITION    | string  | Name of partition (e.g. \"emmc1-1\")                    |            |\n| TASK         | string  | Name of task (e.g. \"dhcp\", \"@a699c0\"                  |            |\n| HOST         | string  | Hostname or IP address                                |            |\n| PORT         | numeric | Socket port number                                    | 1-65535    |\n| MIN          | numeric | Time difference from UTC in minutes (0)               | -719-719   |\n| SECS         | numeric | Number of seconds                                     | 1-60       |\n| MAXITERATION | numeric | Maximum iteration parameter (5000)                    | 50-50000   |\n| COUNT        | numeric | Number of test runs (10)                              | 1-100      |\n| LHZ          | numeric | Tone frequency for left channel in Hertz (440)        | 8-12544    |\n| RHZ          | numeric | Tone frequency for right channel in Hertz (440)       | 8-12544    |\n| BLKCOUNT     | numeric | Number of blocks to be sent (500000)                  | 1-10000000 |\n| BLKSIZE      | numeric | Size of one data block to be sent (4000)              | 100-4000   |\n| CMD          | string  | VC command (e.g. \"commands\")                          |            |\n| ARG          | string  | Argument of VC command                                |            |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsta2%2Funitest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frsta2%2Funitest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsta2%2Funitest/lists"}