| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /*********************************************************************************************************************
- * COPYRIGHT NOTICE
- * Copyright (c) 2020,逐飞科技
- * All rights reserved.
- * 技术讨论QQ群:三群:824575535
- *
- * 以下所有内容版权均属逐飞科技所有,未经允许不得用于商业用途,
- * 欢迎各位使用并传播本程序,修改内容时必须保留逐飞科技的版权声明。
- *
- * @file main
- * @company 成都逐飞科技有限公司
- * @author 逐飞科技(QQ3184284598)
- * @version 查看doc内version文件 版本说明
- * @Software ADS v1.2.2
- * @Target core TC264D
- * @Taobao https://seekfree.taobao.com/
- * @date 2020-3-23
- ********************************************************************************************************************/
- #include "headfile.h"
- #include "pikascript.h"
- #pragma section all "cpu0_dsram"
- //将本语句与#pragma section all restore语句之间的全局变量都放在CPU0的RAM中
- //工程导入到软件之后,应该选中工程然后点击refresh刷新一下之后再编译
- //工程默认设置为关闭优化,可以自己右击工程选择properties->C/C++ Build->Setting
- //然后在右侧的窗口中找到C/C++ Compiler->Optimization->Optimization level处设置优化等级
- //一般默认新建立的工程都会默认开2级优化,因此大家也可以设置为2级优化
- //对于TC系列默认是不支持中断嵌套的,希望支持中断嵌套需要在中断内使用enableInterrupts();来开启中断嵌套
- //简单点说实际上进入中断后TC系列的硬件自动调用了disableInterrupts();来拒绝响应任何的中断,因此需要我们自己手动调用enableInterrupts();来开启中断的响应。
- uint8 uart_buff;
- int core0_main(void)
- {
- get_clk();//获取时钟频率 务必保留
- //用户在此处调用各种初始化函数等
- uart_init(UART_0, 115200, UART0_TX_P14_0, UART0_RX_P14_1);
- enableInterrupts();
- uart_putstr(UART_0, "\n---uart test---\n");
- gpio_init(P20_8, GPO, 0, PUSHPULL);
- //在本库中,对于串口的接收与发送都是通过中断完成的,因此想要正常的使用串口功能务必保证中断是开启的,也就是调用了enableInterrupts()
- //串口的中断函数全部都在isr.c中。
- //串口中断相关的配置参数都在isr_config.h中
- //可配置参数有 ERU_CH0_CH4_INT_SERVICE 和 ERU_CH0_CH4_INT_PRIO
- //UART0_INT_SERVICE 中断服务者,表示改中断由谁处理,0:CPU0 1:CPU1 3:DMA 不可设置为其他值
- //UART0_TX_INT_PRIO 发送中断优先级 优先级范围1-255 越大优先级越高 与平时使用的单片机不一样
- //UART0_RX_INT_PRIO 接收中断优先级
- //UART0_ER_INT_PRIO 错误中断优先级
-
- //其他串口中断参数同理
- //需要特备注意的是 不可以有优先级相同的中断函数 每个中断的优先级都必须是不一样的
-
- //等待所有核心初始化完毕
- IfxCpu_emitEvent(&g_cpuSyncEvent);
- IfxCpu_waitEvent(&g_cpuSyncEvent, 0xFFFF);
- enableInterrupts();
- // PikaObj* pikaMain = pikaScriptInit();
- pikaScriptShell(pikaScriptInit());
- //注意 从V1.1.6版本之后 printf打印的信息从串口输出具体可以学习库例程6-Printf_Demo
- //注意 从V1.1.6版本之后 printf打印的信息从串口输出具体可以学习库例程6-Printf_Demo
- //注意 从V1.1.6版本之后 printf打印的信息从串口输出具体可以学习库例程6-Printf_Demo
- while (TRUE)
- {
- //查询是否有数据,如果有则接收
- if(uart_query(UART_0, &uart_buff))
- {
- //将收到的数据,再发出去
- uart_putchar(UART_0, uart_buff);
- gpio_toggle(P20_8);
- }
- //使用usb转ttl连接单片机的串口,在电脑上打开串口助手,任意发送字符,
- //单片机收到后会返回发送的字符,串口助手就会显示刚才发送的东西
- }
- }
- char __platform_getchar()
- {
- while(TRUE){
- if(uart_query(UART_0, &uart_buff))
- {
- return uart_buff;
- }
- }
- }
- #pragma section all restore
|