社区导航

 
查看: 995|回复: 15

[讨论] 打算和PIC32MZ的中断死磕到底了

[复制链接]

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-2-12 12:03:47 | 显示全部楼层 |阅读模式
自己有点强迫症,不想用harmony,主要也是这东西三两天也搞不定,因此中断都自己写。连续几天的奋战,初始化中断所需的向量基址和偏移量,定时器和输出比较中断都搞起来了,昨天和今天搞UART就不行了。之前定时器和输出比较的向量偏移量连蒙带猜,加上一些计算,算是搞了出来,今天打电话问了PIC的一个工程师,劝我用harmony,并明确了官方不对直接编程提供帮助也无法提供,看来只有自己折腾了。反复测试,感觉向量地址的偏移量不是随意配置的,官方文档无任何可用信息,大家有什么意见或者建议?用harmony,还是继续我这种费力不讨好的SB方式?实际我也很想搞清楚PIC32的中断配置和执行过程,不然大学的微机原理岂不白学了。
此帖出自PIC单片机论坛


回复

使用道具 举报

935

TA的帖子

1

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-2-12 13:46:18 | 显示全部楼层
harmony的库有源码么? 如果是自己玩,琢磨学习肯定会有收获。如果是做产品开发,若需要赶进度就用现成的,甚至换一个平台放弃它。


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-2-12 14:49:23 | 显示全部楼层
不知道啊,还不知道harmony怎么玩,但要写一些涉及到状态机的东西,所以我有顾虑,PIC32让人爱让人恨得东西。我是自己玩,用来做个三轴伺服的运动控制器


回复

使用道具 举报

935

TA的帖子

1

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-2-12 16:19:17 | 显示全部楼层
PIC32 以前就买过但是一直没使用。
它和 ARM Cortex-m4 对比起来有很多优点吗?


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-2-12 16:21:57 | 显示全部楼层
没有用过ARM,但PIC32使用的人,貌似确实很少,或许就是因为PIC用起来比较难吧


回复

使用道具 举报

1447

TA的帖子

2

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-2-12 20:27:48 | 显示全部楼层
>>>官方文档无任何可用信息
不知你有什么自信能得出这种结论。
人已离开,无事别找,找也找不到。


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-2-12 21:02:27 | 显示全部楼层
看了PIC32的数据手册和参考文档,没有具体说中断向量的地址偏移量是怎么得来的


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-2-12 21:03:05 | 显示全部楼层
我是指这方面没什么可用信息,别断章取义


回复

使用道具 举报

1447

TA的帖子

2

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-2-12 22:41:56 来自手机 | 显示全部楼层
人家有告诉你偏移量。能纠结怎么来的,大学微机原理才真就白学了。


回复

使用道具 举报

1447

TA的帖子

2

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2018-2-12 23:37:48 | 显示全部楼层
本帖最后由 freebsder 于 2018-2-13 00:04 编辑

大过年的也不怼你,告诉你你也好过个没有牵挂的年。
学过计算机原理的话应该知道一个道理:计算机不是科学,而是学科,既需要数学物理这样的基础科学,也需要工程和管理这样的学科和手段。如果这个道理不知道,“计算机”或者叫“微机”吧是什么没搞清楚,这就是说为什么纠结地址的偏移量是白学。
偏移量只是实现的工程手段,它不是科学它没有背后的科学原理支撑,这个实现没有任何倾向性,因此最多的是想知道一下设计考量。倾向性这个问题是所有设计的基础,而倾向性哪里来?成本,时间,效率,大小等等,所有这些工程和实现上的考量之后综合的出的某一个序,比如A优于B,A差于B,A和B无差异。
偏移量就是A和B无差异的情形,没有任何倾向性。不管从那个角度(成本,时间,效率,大小,操作性,易用性等等)来设计,一个特定外设的A寄存器在B寄存器前面还是后面,中断号在1还是2,并没有任何差异,(除非你故意实现它们要有差别),因为在一段地址空间里面所有的访问都是一致的。这又扯到内存访问特点和磁盘访问特点的明显差异,微机原理有学吗,内存是O(1)访问,常数,与介质无关,磁盘是O(n),n与介质,磁道,磁头距离等都相关。(跨不同总线情况的不讨论)。
正是因为有大量无倾向性情况的存在,因此计算机组成和原理里面又有一个叫“约定”,遵循“约定”的多了,就进化成了“规定”。咱弄个组织,“规定”的东西只要玩这行的都必须得遵循,那TM就是“标准”。
如果还没有明白倾向性,那么简单举三个例子:1、big ending 和 little ending,只是选择和表达的不同,没有任何实质性差异,厂家自己规定了也就定了(寄存器地址偏移量就是这样);2、magic number,幻数怎么取,随你愿意,反正你说了算;3、C里面int x, int y 和 int y, int x 这样的定义序列,x,y自身的先后没有实质意义,谁先谁后你说了算。

所以,从计算机组成和原理中,应该学到三个东西:工程,倾向性,规定。

点评

没用过pic所以无语,harmony更不知所措,看到阁下论述更是蒙b也  详情 回复 发表于 2018-2-13 00:14
人已离开,无事别找,找也找不到。


回复

使用道具 举报

3237

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-2-13 00:14:34 | 显示全部楼层
本帖最后由 huo_hu 于 2018-2-13 00:15 编辑
freebsder 发表于 2018-2-12 23:37
大过年的也不怼你,告诉你你也好过个没有牵挂的年。
学过计算机原理的话应该知道一个道理:计算机不是科学 ...

没用过pic所以无语,harmony更不知所措,看到阁下论述蒙b也


回复

使用道具 举报

636

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-2-13 14:24:05 来自手机 | 显示全部楼层
用plib应该也可以吧


回复

使用道具 举报

6

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-2-24 12:10:38 | 显示全部楼层
harmony是很实用的工具,可以直接配置需要的外设和中断等,自动生成代码,再加入自己的代码就可以了。
完全自己搞就要仔细看应用手册了。
所有的中断向量已经在头文件中定义好了,在C:\Program Files (x86)\Microchip\xc32\v2.05\pic32mx\include\proc中, 中断函数如下:
void __ISR(_UART2_TX_VECTOR, ipl3AUTO) _IntHandlerDrvUsartTransmitInstance0(void)
{
    DRV_USART_TasksTransmit(sysObj.drvUsart0);
}
void __ISR(_UART2_RX_VECTOR, ipl3AUTO) _IntHandlerDrvUsartReceiveInstance0(void)
{
    DRV_USART_TasksReceive(sysObj.drvUsart0);
}
void __ISR(_UART2_FAULT_VECTOR, ipl3AUTO) _IntHandlerDrvUsartErrorInstance0(void)
{
    DRV_USART_TasksError(sysObj.drvUsart0);
}


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-6-12 14:01:51 | 显示全部楼层
哈哈哈,可以结贴了。前段一直忙导师给的任务,然后有天回家敲PIC32的代码,突然想到把所有中断服务代码单独写到一个C文件里面,取名就叫interrupt.C,然后发现,不需要配置什么中断向量偏移地址,同时开了四个中断进行了验证,都跑的好好的。PIC3就打算自己写代码了,完全不用那个harmony。哈哈哈哈哈哈哈!!!


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-6-12 14:05:21 | 显示全部楼层
另外,导师那边有个师兄带我,用的STM32,他们全部用的固件库,而我一直以来都是直接读写寄存器,固件库我完全是一脸茫然。然后看文档,找资料,我把师兄给的例程,逐步的全部改成了寄存器读写的方式。


回复

使用道具 举报

132

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-6-12 14:20:39 | 显示全部楼层
Microchip 的harmony用还是好用,不过用过1.08之前版本,还是有些问题,并且,IDE 也耗资源,常卡着;


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-9-20 12:22 , Processed in 0.438761 second(s), 16 queries , Gzip On, Redis On.

快速回复 返回顶部 返回列表