{"id":13640328,"url":"https://github.com/trivialmips/TrivialMIPS_Software","last_synced_at":"2025-04-20T02:33:18.441Z","repository":{"id":68959143,"uuid":"144108431","full_name":"trivialmips/TrivialMIPS_Software","owner":"trivialmips","description":"Baremetal softwares for TrivialMIPS platform","archived":false,"fork":false,"pushed_at":"2019-08-12T05:36:44.000Z","size":400,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-03T01:16:36.411Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trivialmips.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-08-09T06:12:15.000Z","updated_at":"2023-06-29T16:46:10.000Z","dependencies_parsed_at":"2023-03-11T04:46:03.230Z","dependency_job_id":null,"html_url":"https://github.com/trivialmips/TrivialMIPS_Software","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trivialmips%2FTrivialMIPS_Software","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trivialmips%2FTrivialMIPS_Software/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trivialmips%2FTrivialMIPS_Software/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trivialmips%2FTrivialMIPS_Software/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trivialmips","download_url":"https://codeload.github.com/trivialmips/TrivialMIPS_Software/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223816524,"owners_count":17207872,"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-08-02T01:01:10.098Z","updated_at":"2024-11-09T10:31:06.167Z","avatar_url":"https://github.com/trivialmips.png","language":"Assembly","funding_links":[],"categories":["Assembly"],"sub_categories":[],"readme":"# Software for TrivialMIPS\r\n\r\n## Structure\r\n\r\nThe project contains source code that runs on board and tools/scripts that can be used to convert the source code to proper format:\r\n\r\n* `bootrom` folder contains programs that will be pre-initialized in bootrom, whose entry point is `0xBFC00000`. The output will be a `filename.coe` file, which can be used in the customization of Block RAM IP.\r\n* `ram` folder contains programs that are intened to be written to SRAM, whose entry point is `0x80000000`. By design, the final output of a program are two files: `filename.base.bin` and `filename.ext.bin`. You should write it to two slies of SRAM respectively by offset 0. The output of `bootrom/boot_from_mem.s` should be used in bootrom in order to jump to the entry point of SRAM.\r\n* `func_test` contains functional tests from Loongson\r\n* `perf_test` contains performance tests from Loongson\r\n\r\n## Endianness\r\n\r\n\u003e Endianness __MATTERS__! --Harry\r\n\r\nThe CPU itself is little-endian, that is, the most significant byte is the one with the highest address. As for initialization files, `coe` and `mem` files put MSB on the leftmost side, so `0x12345678` will still be `12345678` in these files. For little-endian binary memory files, it will be `0x78 0x56 0x34 0x12`, and `xxd` will show it as `78563412`. The compiler and linker should be set in Big Endian mode (`-EL`) when compiling from assembly or C/C++ code.\r\n\r\nThe converter from `bin` to `mem` we use does the following work on each line of the given file:\r\n\r\n* read 4 bytes (`0x78 0x56 0x34 0x12`)\r\n* write it out in reverse sequence (`12345678`)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrivialmips%2FTrivialMIPS_Software","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrivialmips%2FTrivialMIPS_Software","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrivialmips%2FTrivialMIPS_Software/lists"}