打印
[MM32硬件]

基于keil环境下mm32f327单片机rtthread的移植

[复制链接]
楼主: 为你转身
手机看帖
扫描二维码
随时随地手机跟帖
41
为你转身|  楼主 | 2022-7-31 20:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
common.c文件:
/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2019,逐飞科技
* All rights reserved.
* 技术讨论QQ群:一群:179029047(已满)  二群:244861897
*
* 以下所有内容版权均属逐飞科技所有,未经允许不得用于商业用途,
* 欢迎各位使用并传播本程序,修改内容时必须保留逐飞科技的版权声明。
*
* @file                                common.c
* @company                        成都逐飞科技有限公司
* @author                        逐飞科技(QQ3184284598)
* @version                        查看doc内version文件 版本说明
* @Software                        IAR 8.32.4 or MDK 5.28
* @Target core                MM32F3277
* @Taobao                        https://seekfree.taobao.com/
* @date                                2021-02-22
********************************************************************************************************************/

#include "common.h"
#include "hal_misc.h"

CAMERA_TYPE_enum camera_type;                                                                                                        // 摄像头类型变量
uint8 *camera_buffer_addr;                                                                                                                // 摄像头缓冲区地址指针

//-------------------------------------------------------------------------------------------------------------------
// @brief                中断初始化
// @param                irqn                        中断号,可以查看 reg_common.h 文件中的 IRQn_Type 枚举体定义
// @param                priority                选择该中断优先级 范围 [0-7]
// @param                status                        使能或者失能
// @return                void
// Sample usage:                                nvic_init(EXTI0_IRQn, 0, ENABLE);                                // 外部中断0使能,抢占优先级最高
//-------------------------------------------------------------------------------------------------------------------
void nvic_init(IRQn_Type irqn, uint8 priority, FunctionalState status)
{
        NVIC_InitTypeDef NVIC_InitStructure;

        NVIC_InitStructure.NVIC_IRQChannel = irqn;                                  // 中断号设置
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= priority & 0x07;                // 抢占优先级值越小,优先级越高
        NVIC_InitStructure.NVIC_IRQChannelSubPriority= 0;                                                        // 响应优先级值越小,优先级越高
        NVIC_InitStructure.NVIC_IRQChannelCmd = status;                                                                // 使能
        NVIC_Init(&NVIC_InitStructure);
}

//-------------------------------------------------------------------------------------------------------------------
// @brief                全局中断使能
// @return                void
// Sample usage:                                nvic_interrput_enable();
//-------------------------------------------------------------------------------------------------------------------
void nvic_interrput_enable (void)
{
        __ASM volatile("cpsie i");
}

//-------------------------------------------------------------------------------------------------------------------
// @brief                全局中断失能
// @return                void
// Sample usage:                                nvic_interrput_disable();
//-------------------------------------------------------------------------------------------------------------------
void nvic_interrput_disable (void)
{
        __ASM volatile("cpsid i");
}

void NMI_Handler(void)
{
        while(1);
}
//void HardFault_Handler(void)
//{
//        //硬件上访  可能是数组越界或者使用了未初始化的设备
//        //这里提示大家一个问题,经常有人说我的外设初始化了怎么就是要进HardFault呢
//        //很多是因为自己开了中断,然后在中断里面使用了外设,然后他的初始化顺序是先初始化中断然后再初始化外设
//        //那么问题就来了,中断初始化完成之后会部分中断直接进入中断函数或者满足调节也会进入中断函数,那么就会造成中断里面使用到的外设还没被初始化
//        //所以大家需要注意这个问题
//        while(1);
//}
void MemManage_Handler(void)
{
        while(1);
}
void BusFault_Handler(void)
{
        while(1);
}
void UsageFault_Handler(void)
{
        while(1);
}
void SVC_Handler(void)
{
        while(1);
}
void DebugMon_Handler(void)
{
        while(1);
}
//void PendSV_Handler(void)
//{
//        while(1);
//}

使用特权

评论回复
42
为你转身|  楼主 | 2022-7-31 20:21 | 只看该作者
headfile.h文件添加“#include “rtthread.h””

//RTT头文件
#include “rtthread.h”

使用特权

评论回复
43
为你转身|  楼主 | 2022-7-31 20:22 | 只看该作者
七、编译运行
可看到板载led持续闪烁
串口持续打印如下数据:

使用特权

评论回复
44
为你转身|  楼主 | 2022-7-31 20:25 | 只看该作者

使用特权

评论回复
45
kiwis66| | 2022-8-23 20:34 | 只看该作者
有PDF么

使用特权

评论回复
46
macpherson| | 2022-9-5 13:06 | 只看该作者
rtthread studio支持mm32吗

使用特权

评论回复
47
iamaiqiyi| | 2022-9-5 13:51 | 只看该作者
rtthread占用的ram大吗

使用特权

评论回复
48
sheflynn| | 2022-9-5 15:44 | 只看该作者
现在单片机的性能都这么强悍了

使用特权

评论回复
49
claretttt| | 2022-9-5 17:11 | 只看该作者
mm32f3兼容stm32哪个?

使用特权

评论回复
50
Bowclad| | 2022-9-9 19:06 | 只看该作者
MM32F3277做智能车性能过剩啊

使用特权

评论回复
51
jackcat| | 2022-9-10 20:44 | 只看该作者
RT-THREAD 有没有各个性能测试的范例

使用特权

评论回复
52
jimmhu| | 2022-9-10 21:31 | 只看该作者
rt-thread系统如何调用动态库

使用特权

评论回复
53
averyleigh| | 2022-9-11 11:16 | 只看该作者
个人认为RT-Thread是一个非常好的系统。

使用特权

评论回复
54
myiclife| | 2022-9-11 12:08 | 只看该作者
怎么将i2c设备驱动添加到rt-thread中

使用特权

评论回复
55
benjaminka| | 2022-9-11 13:04 | 只看该作者
RT-THREAD 的中断程序怎么写

使用特权

评论回复
56
rosemoore| | 2022-9-11 13:55 | 只看该作者
rt-thread 怎么确定线程栈大小

使用特权

评论回复
57
mollylawrence| | 2022-9-11 14:45 | 只看该作者
需要学习rt-thread吗  

使用特权

评论回复
58
pl202| | 2022-9-11 15:35 | 只看该作者
灵动微MM32 MCU支持什么操作系统

使用特权

评论回复
59
qiufengsd| | 2022-9-11 16:26 | 只看该作者
如何在rt-thread上开发应用程序

使用特权

评论回复
60
plsbackup| | 2022-9-11 17:17 | 只看该作者
rt-thread是否是免费的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则