Address issue 71 and enable CoreMark to be compiled by Keil C51 - #78
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR addressed the pointer size comparison issue highlighted in #71
It also contains other code changes to enable CoreMark to be compiled by Keil C51 toolchain.
In Keil C51, "size", "data" and "pdata" are reserved keywords. But they are used in CoreMark as variable / parameter names. Therefore the CoreMark code cannot be compiled with Keil C51 previously.
Additionally, to provide better support MCS51 architecture, a memory attribute macro STATIC_MEMBLK_ATTR is introduced so that the static memory block can be declare as external data (xdata). This change addressed the same need as #58
The default data type mapping in core_portme.h also updated to utilize int32_t and uint32_t in stdint.h. Previously, ee_s32 was mapped to signed int, and ee_u32 was mapped to unsigned int. This is a problem for 8-bit and 16-bit architectures as int can be 16-bit.
The details of the code changes are documented in README.md