完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
内置函数是否在“库”中,或者它们真的“内置”到XC16编译器吗?不可能从编译器中分离出任何未使用的内置代码,就像图书馆那样吗?我在PIC33E中使用以下内容:u builtin_tblrdl_builtin_tblrdh_builtin_tblrdh_builtin_tblwtl_builtin_tblwth_builtin_write_NVM_builtin_tblpage_builtin_tbloffset我所面临的问题是,这些是否将被视为“库函数”。在研究了汇编程序清单之后,我确信这些函数不是库函数,它们不是对库中代码的调用。每一个原型似乎都是语法糖(我明白了吗?)用于指示编译器调用特定程序空间访问汇编程序代码指令。例如:Wd=u builtin_tblrdl(Ws)=>TBLRDL Ws,WdWd=u builtin_tblrdh_tblrdh(Ws)=u builtin_tbLRDHWs,Wd,Ws)=>;TBLWWWWWWWWWWWWWWWWWWWWWs,Wd_u builtin_builtin_tbltblwth(Wd,Wd,Ws)=>;TBLWWWWWWWWWWWWTHTLWWWTH Ws,Wd_builtin_write_NVM=>大约5个指令0x55和γ0xAA,然后,到nnvMKEY,然后设置γnVMCon写(?)bit._builtin_tblpage(x)=>sac.ne,用于将页面(地址x的高位)放入TBLPAG。_builtin_tbloffset(x)=>求值到我正在考虑的表偏移量,如果出现推挤,如果需要的话,我可以用手工汇编代码替换其中的一些部分。-提供的库:编译器不需要被限定,但是伴随它们而来的库必须经过使用的认证。注意:由于使用了_built in_write_NVM:注意:MPLAB XC16 C编译器帮助,所以这里认为这个链接是合适的:“由于函数是内置的,所以没有头文件。内置函数使C程序员能够访问汇编操作符或机器指令,这些操作符或机器指令目前只能使用内联汇编来访问,但是它们非常有用,可以应用于广泛的应用程序。内置函数在语法上像函数调用一样在C源文件中编码,但它们被编译成直接实现该函数的汇编代码,并且不涉及函数调用或库例程。环程序员使用内联汇编。它们包括:为特定目的提供内置函数简化了编码。当使用内联组装时,某些优化被禁用。对于使用专用寄存器的机器指令,在避免寄存器分配错误的同时对内联程序集进行编码可能需要相当小心。内置函数使这个过程更简单,因为您不需要关心每个单独的机器指令的特定寄存器要求。
|
|
相关推荐
5个回答
|
|
有时它们只是宏,扩展到一些汇编代码…
|
|
|
|
我很好奇为什么要这样做,因为在每种情况下,已经使用了最佳的汇编代码来完成这项工作。
|
|
|
|
这是相当荒谬的,已经看过汇编程序清单这些指令;是的,正如你所说的,最佳汇编程序。我认为ASIL D足够干净,在这里我必须验证到汇编指令级别。对其他项目来说,它一直是一个痛苦的地方,编译器抛出一堆代码,我不能追踪到验证数据。例如,我已经修改了B类库的一小部分,并且刚刚验证了这个小的位。所以,当审计师问我,“这看起来像一个图书馆功能,验证在哪里?”我认为现在我已经找到了内置的答案,它们是内置的,不是库,可以跟踪和验证的,就像我的其他源代码一样。
|
|
|
|
如果他们需要该级别的源代码验证,那么通过编译器的预处理器遍历运行代码,该编译器将向您提供用于执行实际代码生成的源代码,而宏已展开,但实际函数调用仍然保留。
|
|
|
|
这个函数是建立起来的,因此它们不需要提供外部的“C”原型就可以工作。
|
|
|
|
只有小组成员才能发言,加入小组>>
5166 浏览 9 评论
2000 浏览 8 评论
1928 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3174 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2226 浏览 5 评论
734浏览 1评论
615浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
506浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
631浏览 0评论
528浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 18:03 , Processed in 1.358512 second(s), Total 87, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号