-
Notifications
You must be signed in to change notification settings - Fork 5.3k
增加cortex-m3 rt_memcpy汇编版本 #4197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
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
|
😂m4,m7呢
…---原始邮件---
发件人: "Meco Man"<notifications@github.com>
发送时间: 2020年12月28日(周一) 晚上8:06
收件人: "RT-Thread/rt-thread"<rt-thread@noreply.github.com>;
抄送: "Subscribed"<subscribed@noreply.github.com>;
主题: [RT-Thread/rt-thread] 增加cortex-m3 rt_memcpy汇编版本 (#4197)
拉取/合并请求描述:(PR description)
[
汇编代码质量有保证,这个是Silicon即uCOS母公司的代码,在uCOS上已经用了十多年,Apache2.0
我之前也研究过这份代码,用汇编加速rt_memcpy函数的主要原因并不是因为汇编本身比c语言快,而是在ARM指令中有一个LDMIA STMIA指令,通过这两条指令,一次就可以读取/写入40个字节,极大的加速了拷贝过程。已经适配了KEIL GCC IAR三个平台。
通过scons脚本,可以自动判断,如果CPU是Cortex-M3就使用汇编版本,如果CPU不是M3则使用C语言版本
]
以下的内容不应该在提交PR时的message修改,修改下述message,PR会被直接关闭。请在提交PR后,浏览器查看PR并对以下检查项逐项check,没问题后逐条在页面上打钩。
The following content must not be changed in the submitted PR message. Otherwise, the PR will be closed immediately. After submitted PR, please use a web browser to visit PR, and check items one by one, and ticked them if no problem.
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
本拉取/合并请求是一个草稿版本 This PR is for a code-review and is intended to get feedback
本拉取/合并请求是一个成熟版本 This PR is mature, and ready to be integrated into the repo
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
已经仔细查看过代码改动的对比 Already check the difference between PR and old code
代码风格正确,包括缩进空格,命名及其他风格 Style guide is adhered to, including spacing, naming and other styles
没有垃圾代码,代码尽量精简,不包含#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up
所有变更均有原因及合理的,并且不会影响到其他软件组件代码或BSP All modifications are justified and not affect other components or BSP
对难懂代码均提供对应的注释 I've commented appropriately where code is tricky
本拉取/合并请求代码是高质量的 Code in this PR is of high quality
You can view, comment on, or merge this pull request online at:
#4197
Commit Summary
Merge pull request #7 from RT-Thread/master
增加memcpy cortex-m3汇编版 加速
增加返回值
File Changes
M libcpu/arm/cortex-m3/SConscript (4)
A libcpu/arm/cortex-m3/rt_memcpy_gcc.S (275)
A libcpu/arm/cortex-m3/rt_memcpy_iar.S (274)
A libcpu/arm/cortex-m3/rt_memcpy_rvds.S (276)
M src/kservice.c (2)
Patch Links:
https://github.com/RT-Thread/rt-thread/pull/4197.patch
https://github.com/RT-Thread/rt-thread/pull/4197.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
|
过两天提交 我先用m3试试水 把框架搭出来 |
|
现在是在 rt_memcpy 中 调用 rt_memcpy_asm 函数,是否可直接替换掉这个函数?这样不是可以少一个调用吗? |
不可以,这个问题我刚开始就是这么实现的,我的倒数第一个大红叉就是这么来的。 |
|
Please provide the rt_memcpy vs asm_memcpy vs memcpy (builtin with toolchains). |
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.
拉取/合并请求描述:(PR description)
[
汇编代码质量有保证,这个是Silicon即uCOS母公司的代码,在uCOS上已经用了十多年,Apache2.0
我之前也研究过这份代码,用汇编加速rt_memcpy函数的主要原因并不是因为汇编本身比c语言快,而是在ARM指令中有一个 LDMIA STMIA指令,通过这两条指令,一次就可以读取/写入40个字节,极大的加速了拷贝过程。已经适配了KEIL GCC IAR三个平台。汇编代码内部考虑到了地址非四字节对齐的情况
通过scons脚本,可以自动判断,如果CPU是Cortex-M3就使用汇编版本,如果CPU不是M3则使用C语言版本
]
以下的内容不应该在提交PR时的message修改,修改下述message,PR会被直接关闭。请在提交PR后,浏览器查看PR并对以下检查项逐项check,没问题后逐条在页面上打钩。
The following content must not be changed in the submitted PR message. Otherwise, the PR will be closed immediately. After submitted PR, please use a web browser to visit PR, and check items one by one, and ticked them if no problem.
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up