关于GD32的C语言开发相关问题的请教

[复制链接]
976|11
手机看帖
扫描二维码
随时随地手机跟帖
xdqfc|  楼主 | 2016-4-28 17:03 | 显示全部楼层 |阅读模式
刚开始了解G32系列产品,有问题向专家请教,第一就是如何用C语言的格式给内部的数据地址绝对定义,也就是我假如想使用某一个特定地址RAM的单元,请问如何使用,第二,就是GD32内部有位单元,请问如何定义。因为是keil,所以想请问是不是跟C51定义是一样的。
cnb12345| | 2016-4-29 16:00 | 显示全部楼层

使用特权

评论回复
xdqfc|  楼主 | 2016-4-29 16:09 | 显示全部楼层
大概了解了一下,这个不像C51那样用SBIT就可以搞定,辛亏编译器有有bitband指令,可以搞定,但是还是没有C51那么方便,不过也算可以了。

使用特权

评论回复
xdqfc|  楼主 | 2016-4-29 16:11 | 显示全部楼层
还有一个绝对地址定位指令at,也很不错。

使用特权

评论回复
xdqfc|  楼主 | 2016-4-29 16:17 | 显示全部楼层
还有一个就是,对于工程师来说,用寄存器编程已经习惯了,而看了头文件后,根本没有对寄存器定义,好像用的是结构体,寄存器成为结构体里面的元素,叫对象吧,感觉很不习惯。

使用特权

评论回复
xdqfc|  楼主 | 2016-4-29 16:19 | 显示全部楼层
假如想灵活运用的话,还是自己编各种子函数比较科学。

使用特权

评论回复
xdqfc|  楼主 | 2016-4-29 16:22 | 显示全部楼层
本来是冲着32位去看看的,感觉不太好用,相比较而言中颖的79F1611更适应些,虽然是8位机,但是内部有16/32位运算单元,加减乘除都有。

使用特权

评论回复
wztoad| | 2016-4-29 18:50 | 显示全部楼层
类操作也很方便吧,现在都有库函数了,架构不一样,51的中断没arm这样可以随意调用函数,外部中断也没这么多,32位运算要慢很多......

使用特权

评论回复
cnb12345| | 2016-5-3 12:07 | 显示全部楼层

使用特权

评论回复
xdqfc|  楼主 | 2016-5-3 15:54 | 显示全部楼层
又仔细的看了一下,参考cortex-M3权威指南,其实上面清楚的讲了keil对位变量的操作,基本跟51的差不多,先用at(),再定义一个指针,跟51的先定义BDATA,再用SBIT一样,也是两步就搞定,比IAR方便多了,也好理解多了。这个位处理器不充分的利用起来,真是暴殄天物。

使用特权

评论回复
xdqfc|  楼主 | 2016-5-3 16:04 | 显示全部楼层
另外对于arm的使用,也不能千篇一律,个人的看法还是用寄存器编程科学,用库函数也可以,但要把函数研究透,函数里面的变量是什么意思还要高清楚,那等于又要看另外一本库函数手册,而基于寄存器编程就灵活多了,想怎么玩就怎么玩。

使用特权

评论回复
xdqfc|  楼主 | 2016-5-3 16:12 | 显示全部楼层
wztoad 发表于 2016-4-29 18:50
类操作也很方便吧,现在都有库函数了,架构不一样,51的中断没arm这样可以随意调用函数,外部中断也没这么 ...

中颖的79F1611内部有硬件的16*16位的乘法器,也有32位除以16位的除法器,是硬件的哦,不需要多少编程,几个周期的事情,也很快的哦,另外51有好几个中断向量的,不像arm就一个,进去后还要再判断的哦。

使用特权

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

本版积分规则

20

主题

1005

帖子

8

粉丝