为什么在ucos向stm32f103移植时说os_cpu_c.c中有三个函数如OS_CPU_SysTickInit()需要注释掉

我在看os_cpu_c.c代码时对下面这段话困惑了半天总是在百度的帮助下找到了答案

/*  申明几个函数,这里要注意最后三个函数需要注释掉,为什么呢?
    OS_CPU_SysTickHandler()定义在os_cpu_c.c中,是SysTick中断的中断处理函数,
    而stm32f10x_it.c,中已经有该中断函数的定义SysTick_Handler(),这里也就
    不需要了,是不是很奇怪官方移植版为什么会这样弄吧,后面我会解释的。
    OS_CPU_SysTickInit()定义在os_cpu_c.c中,用于初始化SysTick定时器,它
    依赖于OS_CPU_SysTickClkFreq(),而此函数我们自己会实现,所以注释掉。
    OS_CPU_SysTickClkFreq()定义在BSP.C (Micrium\Software\EvalBoards)中,
    而本文移植中并未用到BSP.C,后面我们会自己实现,因此可以把它注释掉。

*/

之所以不在用OS_CPU_SysTickInit()等函数是因为在stm32f将自身固件库升级后

在cmss的core_cm3.h文件中提供了一个更加更加便捷的函数SysTick_Config(uint32_t ticks)

用于设置SysTick.

在bsp.c中添加下面的函数来替换OS_CPU_SysTickInit()和其相关函数

void SysTick_Init(void)
{
    /* SystemFrequency / 1000    1ms中断一次    最大值
     * SystemFrequency / 100     10ms中断一次
     * SystemFrequency / 10 100ms中断一次       最小值
     */
          //st3.0 用 SystemFrequency而st3.5 用 SystemCoreClock
       SysTick_Config(SystemCoreClock /OS_TICKS_PER_SEC);

}

时间: 2024-12-25 15:25:41

为什么在ucos向stm32f103移植时说os_cpu_c.c中有三个函数如OS_CPU_SysTickInit()需要注释掉的相关文章

Opencv程序移植时问题及解决,移植成功啦,哈哈

Opencv移植方法:http://blog.csdn.net/b5w2p0/article/details/8976665 我用的是Cmake,最终成功,把路径下生成的so文件拷到开发板的  /lib文件下. 在这之前也可能要移植ffmpge:http://blog.csdn.net/b5w2p0/article/details/38455071 遇到问题多看文章,多试几次最终一定会成功. 现在就可以编译程序啦: <span style="font-size:18px;">

【转】easyui $.message.alert 点击右上角的关闭按钮时,不执行定义的回调函数

今天發現這個問題 easyui  $.message.alert  点击右上角的关闭按钮时,不执行定义的回调函数

同一域名对应多个IP时,PHP获取远程网页内容的函数

同一域名对应多个IP时,PHP获取远程网页内容的函数 [文章作者:张宴 本文版本:v1.0 最后修改:2008.12.15 转载请注明原文链接:http://blog.zyan.cc/post/389/] PHP获取远程网页内容有多种方式,例如用自带的file_get_contents.fopen等函数. 引用 <?php echo file_get_contents("http://blog.zyan.cc/abc.php"); ?> 但是,在DNS轮询等负载均衡中,同一

用cocos2d-android开发android游戏时调用box2d中的native本地函数问题

用cocos2d-android开发android游戏时调用box2d中的new World(Vector2,boolean)时,出现如下报错: "java.lang.UnsatisfiedLinkError: Native method not found: com.badlogic.gdx.physics.box2d.World.newWorld:(FFZ)J" 解决方法: 在当前类中添加代码: static { System.loadLibrary("gdx"

JVM 在遇到OOM(OutOfMemoryError)时生成Dump文件的三种方式

JVM 在遇到OOM(OutOfMemoryError)时生成Dump文件的三种方式,以及如何使用Eclips Memory Analyzer(MAT)插件进行堆内存分析. 方法一: jmap -dump:format=b,file=文件名 [pid] 例如: jmap -dump:format=b,file=/usr/local/base/02.hprof 12942 方法二: 让JVM在遇到OOM(OutOfMemoryError)时生成Dump文件,需要配置一些信息 -XX:+HeapDu

Win32游戏到Android平台移植时必须解决的问题集锦

这方面的问题很多,在目前网络上很难找到满足的答案.我在这里将把自己的一个游戏从WIN32到ANDROID移植过程必须面对和要解决的问题,列举出来(有些是已经得到回答的,有些还未解决). 1,如何显示自己的游戏程序图标 这个使用传统的android平台思路实现即可,即修改工程的proj.android\res路径下drawable-hdpi.drawable-ldpi.drawable-mdpi.drawable-xhdpi下的icon.png文件. 注 意:一次试验中我仅修改了drawable-

SylixOS移植时mk_time函数问题

1.适用范围 本文档适用于进行SylixOS中间件移植的技术人员. 2.问题复现 2.1 问题现象 在进行Python3移植测试时,test_time.py测试用例出错,错误如图 2.1 所示: 图2.1 测试用例出错信息 2.2 问题源码 测试用例的python源码如图 2.2 所示: 图2.2 问题源码 3.原因分析 mktime()是定义在time.h中的函数,函数原型为time_t mktime(struct tm * timeptr).作用是将参数timeptr所指的tm结构数据转换成

ShareSDK向iOS平台移植时问题及解决办法

问题 此前,我的开发环境是Windows7(64bits)+VMware 9.0+Mac OS 8.5+Xcode 4.5,结果在测试游戏中集成目前最新的ShareSDK(ShareSDK For iOS 2.10.3,而ShareSDK For COCOS2D-X也是目前最新的)时失败.出现如下图所示的编译错误: 而第二个错误如下图: 显然,这两个错误都来自ShareSDK官方文件.注意:在基于Cocos2d-x框架开发的游戏中集成ShareSDK实现iOS版本时需要两个部分(其中也要加入上面

调用函数时传递的实参个数arguments.length; ,函数定义时的形参个数sum.length

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>范例6-4</title>