工具/软件:TI C/C++编译器
所有、
我不想用´d C 编写代码、没有 TI API 或系统控制函数。
但我在为重载/超时的 WTimer0设置中断时遇到了困难。
基本上、我的代码如下所示:
main (空)
{
(笑声)
}
???
void timer_ISR () //针对运行输出/重新加载的定时器的 ISR (WTimer 周期模式)
{
(笑声)
}
问题是:如何为 ISR (中断服务例程)设置正确的声明? pragma?
感谢您的帮助、
Gunter
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
所有、
我不想用´d C 编写代码、没有 TI API 或系统控制函数。
但我在为重载/超时的 WTimer0设置中断时遇到了困难。
基本上、我的代码如下所示:
main (空)
{
(笑声)
}
???
void timer_ISR () //针对运行输出/重新加载的定时器的 ISR (WTimer 周期模式)
{
(笑声)
}
问题是:如何为 ISR (中断服务例程)设置正确的声明? pragma?
感谢您的帮助、
Gunter
[´d user="Gunter Heuer"]我喜欢用普通 C 语言编写代码,没有 TI API 或系统控制函数。[/quot]
虽然(这)"喜欢"可能(似乎)满足您的需求(此时)、您是否考虑过如果"多/多"寻求此(额外)支持、这会对论坛造成的影响? (这将会是巨大的-并且得到帮助的海报数量将会减少...)
请务必了解、该供应商的 API 是"经试用、真实、经过测试"的、并且由供应商员工和一些"外部人员"提供"良好的支持"。 拒绝 API "将您从畜群中剔除!" 这(严重)会减少技术支持、需要您付出的更多(和更长的)努力、并且您的独特实施不太可能证明与供应商的"成熟的"API 一样稳健。 (这并不是贬低您的-它是一个事实陈述!)
当您列出自己的"喜欢"时-您完全无法描述 (为什么)您的动机! (进一步减少对您的请求的同情。)
有一种"妥协立场"----即使用"直接寄存器操作"或简单地使用"汇编程序"。 请注意、此处均不支持"供应商支持"、这将需要您投入更多时间/精力、并且生成的代码绝不能在"长期存在" API 的范围内"经过尝试和测试"。 (如果您还不熟悉这些强大的技术、您可能希望搜索"基于测试的设计")
您(看起来)对 API 的拒绝可能导致您忽略(完全提供) API 源代码的"重点研究"。 通过 API 的对比/对比-与您自己的 C 代码-您获得了大量的"代码建模"帮助-您不能吗?
遗憾的是(部分)大学"拒绝通过 API 获得的惊人效率。" 作为一个小型技术企业所有者-我们几乎永远不会允许新员工"投入(真正浪费)大量时间/精力"来追求"效率极低的方法"来生成代码、证明"未经尝试、通常是不真实的、经过最少/勉强测试!" (我们的门/其他人的门-不太可能沿着这条道路"保持打开"。)
公司/我参加了几个 ARM /其他技术场所-该供应商不是"一般/不肯"-他们的章程是"为许多人提供最优质的产品!" 这只能通过 API 来实现...
[´d user="Gunter Heuer"]我喜欢用普通 C 语言编写代码,没有 TI API 或系统控制函数。[/quot]
别那样做。 真的不要。
使用 API 没有缺点、可用的支持极少或根本不支持。 几乎唯一的支持就是从 TIVAWare 源进行逆向工程。
[引用 user="Gunter Heuer"]
void timer_ISR () //针对运行输出/重新加载的定时器的 ISR (WTimer 周期模式)
{
(笑声)
}
问题是:如何为 ISR (中断服务例程)设置正确的声明? pragma?
[/报价]
无论有无 TIVAWare、Cortex M 上中断矢量的正确原型都是
void 函数(void);
您必须将该函数放置在中断表中(启动时)、就像放置在其他处理器上一样。 或者 TIVAWare 有一个寄存功能、此功能使用适当的指针更新中断表的 RAM 副本。
我选择修改启动以使用弱定义、因此我不必修改启动以添加新的中断函数、只需正确命名即可。
Robert