这是一篇关于Renesas的CS+ for ca(以下简称CA)的入门简介,在网上关于这个IDE的使用方法比较少人讲述,兴许使用的人比较少吧。另一个类似的IDE是CS+ for cc,这两个IDE的区别在于CA终将淘汰,现在CA的版本为4.0,而CC的版本为5.0。

从供应商的技术支持得到的反馈是CA是早期的NEC开发的,而NEC的IP做得是不错的,而瑞萨的外设做得不错,然后集两家之所长,瑞萨做了关于RL78系列的单片机。但是CA的编译器编译效率不太好,然后瑞萨后来直接开发新的编译器,用于取代CA的编译器,就是后面的CC。

我之所以任然选择CA主要是CA的支持度更高,资源更丰富,官网的demo都是基于CA的,但是我建议大家后面使用CC这个IDE吧,CC的使用方法基本和CA一样,而且编译出来的二进制文件比CA编译出来的小20%,且CC能支持long long类型的量,而CA只支持long型变量。

先简单的讲讲怎么建立工程,安装过程略过,以R5F100MF这个芯片为例

1、单击菜单栏的Project->Creat New Project

选择RL78系列的芯片,编译器选择CA78K0R,注意一件事,路径不要出现中文。

建立工程之后的工作区如下图:

CA和CC均提供代码生成工具,单击Tool->Plug-in Setting,出现如下框图,勾选代码生成插件

IDE重启一次,然后在工程文件处会出现代码生成的选项,如图

然后简单介绍一下代码生成工具的使用:

点击Project Tree栏下代码生成工具的Clock Generatot

首先需要选择引脚的映射功能,有些引脚可以映射不同的外设功能,需要查询datasheet后再选择。但同一时间只能使用一个引脚,每一个PIOR对应一套引脚,根据原理图自己选择对应的引脚,有一点需要注意的是,一旦选择了好了以后,无法修改,只能新建工程。

然后是Clock Setting标签栏,这里主要是电源的运行范围,运行主时钟的选择,我选择了内部时钟,32MHz,并且勾选了,fSUB,这个是用于运行内部RTC的时钟源。

Block diagram主要是用于查看内部时钟连接的,用于查找各个外设开启需要开启什么时钟

On-chip debug setting 勾选On-chip debug operantion。setting used Security ID setting一般不选,否则在别的工程无法正常编译芯片。

Data flash 这个标签有需要就使能吧。

然后点击Code Generator下的Port,这是设置引脚初始化的时候的电平以及使用方式的,具体的引脚设置需要查看原理图,在这里我建议GPIO最后再设置。

然后点击Interrupt,勾选其中一个外部中断,可以选择有效边沿或者叫触发电平,优先级有四级可选,高-一级-二级-低

然后点击Key input interrupt 。这个和外部中断触发的区别在于有消抖

然后点击Project Tree栏的Serial

根据需要选择通道,不同的通道对应不同的引脚端口,这一点在一开始就定好了的。串口功能可以选择单一的接收、单一的发送、接收发送同时选择。

点击UART0

图中我选择了8个数据长度、小端数据、无校验、1个停止位、9600波特率(波特率可以直接手动输入)、优先级为1级、不使用回调函数。

关于回调函数,我个人建议不要使用代码生成工具的。因为,着实不好用。

配置完串口接收之后还要配置串口发送,如图,这个我就不解释了,直接看图吧

点击IICA0,非主即从,这里以主为例

然后点击Setting,设置地址为16,速度100K,中断级别为1。

然后点击A/D Converter

介绍一下我的设置,关闭电压比较、10位精度、正参考源 为VDD,负参考源为VSS(使用非电源参考源的时候需要牺牲一路AD通道,具体是那一路需要看datasheet),软件触发、单次触发、输入通道选择单路ANI0,优先级为1.

因为我只开启了一路AD,所以没有开启中断,设计思路是定时触发AD,每次触发前将AD值取回来,然后再触发,ADC采样时间是微秒级的,而我的定时采样时间为20ms。

点击Project Tree的Timer

点击TAU0,这里我只介绍定时中断和脉宽检测

然后点击Channel0,如图,不解释了

然后是Channel 3 的介绍,选择下拉框TI03 interval range,可以选择测量的范围,这是一个16位计数器,当接收到触发边沿的时候,开启计数,直到溢出或者另一个计数边沿被检测到,触发的边沿可以选择为双边沿、下降沿、上升沿触发,这个外功能我主要是用于红外检测,红外检测我会在另外一篇博文讲解,这里不表。

然后点击Project Tree的Watchdog Timer,一般不在HALT/STOP/SNOOZE模式下开启看门狗,关于芯片的运行模式需要自行查看datasheet,不同的模式启用的时钟不一样,主要是为了实现低功耗,不同的模式唤醒机制也不一样。我配置的看门狗使用的溢出时间是最长的,下拉框可选,开窗期为百分之百,优先级最高。

点击Real-time Clock,这个实时时钟比较简单,我只是选择了24小时,默认是12小时制,至于其他的功能,本人感觉使用价值不高,建议自己实现。

点击Interval Timer,这个就不解释了,看图吧

选择Clock Output/Buzzer Output,这个主要做蜂鸣器输出

DMA Controller没有使用过,请读者自行摸索

然后是Voltage Detector,这个是低电压检测,当电压低于设置阈值的时候,产生低压检测中断,当电压高于阈值的时候,再次进入中断。检测原理我不懂,这个功能的目的是检测电源电压是否小于阈值,然后在进入低压中断的时候将各个外设关闭,io口电平降低或者高阻态,然后利用STOP();这个函数进入STOP模式,进入低功耗之后,只运行RT时钟,其他时钟全部关闭,按照datasheet,功耗为5uA,RAW的值保持,这在实现低功耗的时候是有用的。关于各个运行模式下的时钟运行状态,请看datasheet。

设置完上述内容之后点击,Generate Code。

图中的代码就是插件给用户生成的代码。

各个外设的底层函数在r_systeminit.c中调用,函数为R_Systeminit();这个函数在调用mian()之前就已经调用了。

然后用户需要使用某个外设的时候任然需要自己去启用它,需要将代码写入到R_MAIN_UserInit()这个函数的

/* Start user code. Do not edit comment generated here */
    EI();

R_TAU0_Channel0_Start();
    /* End user code. Do not edit comment generated here */

注释中间,比如需要使用定时器,需要在r_cg_timer.h这个文件中找到相应的函数R_TAU0_Channel0_Start();并将其写入到R_MAIN_UserInit()。

大部分外设都需要这么写,看门狗不用,GPIO也不用,GPIO的调用仍然是使用寄存器的,没有相应的API可以用,需要自己设置方向以及高低电平。

关于生成的源码,基本上直接修改代码生成插件就可以了,用户一般不用去自己修改代码,当然,一些特殊的需求需要自己写,比如实现串口的接收和发送,我不喜欢代码生成工具写的那种方式,不符合我的需求,所以,每次在使用代码生成的时候,注意做好备份。

一般而言r_cg_cgc.c这样的源文件是外设的初始化文件,然后r_cg_cgc_user.c这样带user的文件就是中断函数所在的源文件,一般我们在修改中断函数或者添加代码的时候,都要把用户添加的代码添加到

/* Start user code for include. Do not edit comment generated here */
/* End user code. Do not edit comment generated here */

中间。否则,下一次点击生成代码的时候用户代码会被覆盖掉。

用户可以自行添加用户源文件,添加后IDE自动添加搜索路径,不用自己再次添加搜索路径。右键点击file->Add即可。

关于中文支持,我听过一个论调,CS+ for CA不支持中文,额,我也被困扰过一段时间,说实话,这个IDE对中文的支持度确实很差,而且不支持在代码后面添加“//”注释。

下面说一下方法,这个方法应该也适用于CS+ for CC

点击菜单栏的Tool->Options,然后关闭代码的自动检测功能,图中标记处

然后点击Project Tree栏下的CA78K0R(Build tool),再点击工作区的Compile Options->Extension->Kanji Chacter code of source 选择如图所示的选项,然后就可以在/* */这种注释里面使用中文了。

然后关于编译器的选项,下次再说吧。按照我上面说的去配置,基本能进行简单的编程了。

写于深圳 午后 雨

2017年7月4日

Renesas CS+ for ca cx入门(一)相关推荐

  1. c#语言cs模式编程,C#入门经典之ScriptCS:将C#转变为脚本语言

    在C#入门经典学习中,我们知道ScriptCS 支持开发者使用简单的文本编辑器编写 C# 应用,并通过 Roslyn 执行编译,使用 NuGet 进行包管理.希望对大家学习C#入门经典有所帮助. Wi ...

  2. Renesas_based_intro

    Renesas入门记录 写在前面 关于Renesas的IDE IDE区别 下载指引 操作流程简述 新建工程 基础配置 生成代码 CC与CA细节区别 IO寻址规则区别 参考链接 这是同个作者的三篇连续介 ...

  3. 瑞萨R7F0Cxxx系列单片机入门教程

    版权声明:本文为博主yjydyod原创文章,转载请声明 本文作者为yjydyod,转载自:https://blog.csdn.net/yjydyod 前言 这是一篇关于瑞萨R7F0Cxxx系列单片机的 ...

  4. 瑞萨IDE:CS+ for CC下载、安装和基础使用

    目录 1.开发环境下载及安装 2.基础使用方法 因为工作需要,最近开始接触到瑞萨车规级MCU,以后计划输出一些相关的技术内容. 瑞萨单片机开发环境有三种:e²studio.CS+ for CA,CX. ...

  5. 【瑞萨单片机】搭建瑞萨单片机开发坏境

    下载安装 IDE下载地址:http://bbs.eeworld.com.cn/thread-471698-1-1.html 安装过程基本是无脑操作. 打开工程 可能会遇到问题: 原因:找不到该芯片的配 ...

  6. 针对瑞萨单片机编译时空间无法全部使用问题的解决方案

    编译器:CS+ for CA CX 单片机:R5F1026 异常信息:实际单片机16K,但是编译到9K后无法再添加任何代码[RA78K0 error E3206: Segment '@@LCODE' ...

  7. 瑞萨单片机之开发环境的搭建(一)

    目录 一.开发环境搭建 二.开发环境界面设置 三.新建一个demo 四.软件使用(使用发现的功能及坑) 4.1 编译代码后显示当前程序大小 4.2.代码缩进 4.3 代码屏蔽 瑞萨单片机开发环境有三种 ...

  8. 瑞萨RL78\G13编译出现Segment ‘@@CODEL‘ can‘t allocate to memory

    点击Help->about查看licence,发现是CS+没有激活,呵呵. (小知识:CS+没有激活的状态下只能编译32K\64K的代码量,随芯片型号改变-) 点击开始菜单,选择下图这个东西,输 ...

  9. abap CA CO CS等操作符

    abap CA CO CS 1.CA  contain  any str1 ca str2  遍历str1,其中的每个字符对应到str2的每个字符,如果对应成功,注意:只要有一个字符成功,就为true ...

最新文章

  1. 使用TortoiseGit处理代码冲突
  2. [css] 当页面采用rem布局时,如何解决用户设置字体大小造成的页面布局错位?
  3. post python爬虫_小白学 Python 爬虫(17):Requests 基础使用
  4. js使用base64 上传图片解决iOS手机竖屏拍摄图片发生旋转问题
  5. python的网络应用_python 网络编程的应用模块
  6. Javascript模块化编程系列二: 模块化的标准化(CommonJS AMD)
  7. 乐观锁-version的使用
  8. AI如何变革家居软装?拍图就能搜商品,深度学习平台飞桨新玩法
  9. JS的内建函数reduce
  10. 原生javascript开发仿微信打飞机小游戏
  11. while(条件) 语句;语句 容易理解错的一点
  12. [3]、Swagger——解决前后端打架问题
  13. 卫星导航开源代码汇总
  14. 安卓电子书格式_好学习、求向上 | 转换各类文件格式?一个网站就够了
  15. 解决docker删除镜像时image is referenced in multiple repositories
  16. OneR算法python实现
  17. solr6.3与MySQL结合使用
  18. 一位拖延症患者程序员的自我救赎!
  19. stm32: 串口空闲中断的实现(HAL库)
  20. Oracle索引与where

热门文章

  1. 打雷以后必定会下大雨
  2. espanso-跨平台文本扩展工具
  3. python网易云收费_小白都能学会的Python爬虫网易云音乐
  4. 装机员系统下载合集(五月更新发布)!
  5. C语言实现动态通讯录(附带文件保存)
  6. [附源码]计算机毕业设计JAVA中学学生学籍管理
  7. Python将经纬度数据转换成浮点数据
  8. 【云原生网关】Kong 使用详解
  9. 【实用工具01】免费的比较工具Meld
  10. 2021年茶艺师(初级)考试题库及茶艺师(初级)试题及解析