N76E003初次搭建工程及遇到Keil 警告

发布者:ZenMaster123最新更新时间:2022-07-13 来源: csdn关键字:N76E003  搭建工程  Keil  警告 手机看文章 扫描二维码
随时随地手机看文章

问题描述

初次接触N76E003开发板,主要根据以下三篇文章搭建了基本的环境:


[N76E003安装环境教程] https://www.cnblogs.com/zhugeanran/p/9554822.html (本文调试遇到警告例子为该文末尾程序)

[N76快速入门及常见坑] https://blog.csdn.net/qlexcel/article/details/81069808

[单片机入门学习笔记:新唐单片机N76E003] https://blog.csdn.net/qq_41068712/article/details/86169439

然后项目编译 0 Error(s), 0 Warning(s),创建却提示了12个Warnings,大致都如同下面所示:


*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

    SEGMENT: ?PR?_TIMER3_DELAY10US?DELAY


在网上查阅资料得知,这是因为程序中有些函数例如COMPARE(或片段)以前(调试过程中)从未被调用过,或者根本没

有调用它的语句。这条警告信息里面还包含一条信息,它指示出是哪个函数导致了这一问题。


这个Warning可以置之不理,但是实际操作中却会出现其他的小问题。譬如即使程序没有调用这个函数,Keil仍然把它编译连接进整个程序。ROM充足并不用过多地担心,但在这个函数中的变量,不会被列入覆盖分析范围内,也就是说这些变量占的空间不能被回收,这对于为数不多的RAM资源可以说是巨大的浪费。


具体的解决方法就是找到Common.h和Delay.h的头文件中,找出所有定义了但未使用的函数,并为每个函数添加如下的格式:


#ifdef _函数名_


~~ 该函数 ~~


#endif


当为所有此类L16的Warning(s)全部添加了这种结构后,Warning就消失了。


然后,有出现了三个Warning(s)如下所示:


*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL

    SYMBOL:  _TIMER0_DELAY1MS

        MODULE:  .Objectsmain.obj (MAIN)


看到百度知道一位大神的解释最详细,还提到了其他引发错误的可能,在此附上链接:

https://zhidao.baidu.com/question/278387387.html

我这个情况出现的问题是我把我用到的一个函数也预编译掉了,去掉之前为该函数添加的冗余的预编译语句就可以了。

#ifdef Timer0_Delay1ms

#endif


//ifdef Timer0_Delay1ms

void Timer0_Delay1ms(UINT32 u32CNT)

{

    clr_T0M;                                //T0M=0, Timer0 Clock = Fsys/12

    TMOD |= 0x01;                            //Timer0 is 16-bit mode

    set_TR0;                                //Start Timer0

    while (u32CNT != 0)

    {

        TL0 = LOBYTE(TIMER_DIV12_VALUE_1ms); //Find  define in "Function_define.h" "TIMER VALUE"

        TH0 = HIBYTE(TIMER_DIV12_VALUE_1ms);

        while (TF0 != 1);                    //Check Timer0 Time-Out Flag

        clr_TF0;

        u32CNT --;

    }

    clr_TR0;                                //Stop Timer0

}

//endif


最终,构建工程完成了。

在这里插入图片描述文链接:https://blog.csdn.net/tech_otaku0512/article/details/90695068


关键字:N76E003  搭建工程  Keil  警告 引用地址:N76E003初次搭建工程及遇到Keil 警告

上一篇:N76E003AT20筋膜枪单片机设计方案
下一篇:N76E003 Keil设置芯片使用FLASH的地址空间

推荐阅读最新更新时间:2024-11-12 11:04

【STM32F0】Keil 查看局部变量显示
现象: 在进行STM32F0开发的时候出现了,调试代码,添加变量Watch时,显示not in scope。 处理方式: 因为代码开了优化的处理,把优化改到Level0,就可以解决问题。
[单片机]
keil MDK之RTX的调试方法
一、准备一个RTX的工程并编译 二、点击MDK的调试按钮,如图红色框 三、进入调试状态下,选择System and Viewer 选择后就可以弹出下面这样的窗口 四、选择Debug里面的-》OS Support- Event Viewer,如下 选择后会弹出如下窗口 五、使能调试状态下的窗口周期性更新功能 六、点击全速运行 之后我们就可以观察到任务的实时运行情况  Timer Number:0 表示使用芯片的滴答定时器,1 表示使用外设定时器。  Tick Timer:RTX 的时钟节拍周期。  Roud Robin Timeout:时间片溢出时间
[单片机]
<font color='red'>keil</font> MDK之RTX的调试方法
N76E003 驱动 串口屏
//-----------写命令--------------- void write_command(int data1) { char i; cs=0; rs=0; for(i=0;i 8;i++) { lcd_scl=0; if(data1&0x80) lcd_sda=1; else lcd_sda=0; lcd_scl=1; data1=data1 =1; } cs=1; } //-----------写数据--------------- void write_data(int data1) { char i; cs=0; rs=1; for(i=0;i 8;i++) {
[单片机]
<font color='red'>N76E003</font> 驱动 串口屏
51单片机 Keil C 延时程序的简单研究
应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而在极端的情况下,计时器甚至已经全部派上了别的用途。这时就需要我们另想别的办法了。 以前用汇编语言写单片机程序的时候,这个问题还是相对容易解决的。比如用的是12MHz晶振的51,打算延时20us,只要用下面的代码,就可以满足一般的需要: mov r0, #09h loop: djnz r0, loop 51单片机的指令周期是晶振频率的1/12,也就是1us一个周期。
[单片机]
s3c2440 ads程序移植到keil中(三) 初步完成
如果我把参数配置发生改变呢 然后再一次编译 要包错误 如下所示 其实我们到这里离 在s3c2440 ads程序移植到keil中(二)中看到这个网友不值提供了方法 而且提供了几个文件的下载地址 http://download.csdn.net/detail/googlemi/5176844 我直接下载下来了 把其中的2440init.s文件直接拷贝复制替代我工作中的2440init.s 该错误消失了 但是出现了 这一个错误 反正修改就能解决 然后 提示了一个错误 意思 就nand.c和nand.h 没有加上去 让后加上去了 编译成功没有错误 这种方式到此结束
[单片机]
s3c2440 ads程序移植到<font color='red'>keil</font>中(三) 初步完成
STM32 PWM的输出与Keil软件仿真
STM32 PWM的输出 脉冲宽度模式(PWM模式)可以用来产生一个由TIMx_ARR寄存器确定平率,由TIMx_CCRx寄存器确定占空比的信号。在STM32开发中,由于官方提供了较为完善的库函数,使得我们的开发工作变得相当的轻松,甚至可以在不需要太多了解硬件结构的条件下,完成我的开发工作,实现我们所需要的功能。在此,笔者也建议大家,在初学的时候尽量去熟悉固件库中提供的函数来调节PWM的频率和占空比,对底层寄存器的操作应尽量减少。 本文使用的STM32F103RB的芯片,输出通道是TIM2_CH2通道,STM32有较强的可移植性,如果读者的芯片类型跟我不一样,可以做适当的修改,完成自己的开发。 使用到的库函数有: s
[单片机]
s3c2440 ads程序移植到keil中(二) 初步完成
如果我把参数配置发生改变呢 然后再一次编译 要包错误 如下所示 错误如下 这个错误解决不了 最后查看了网上网友的方法 又可以修改 但是引入了nand文件 最后反正知道了2440init.s文件要修改许多 所以我就不再这里继续整了 浪费时间 直接运用网上网友的东西即可 网友编写的地址 https://blog.csdn.net/hannibaychty/article/details/44873327 从买板子到现在,想想也有2个月啦,开始就想跑裸奔的,可是工程都是在ADS下,win7系统根本不能用,于是就想着怎么在MDK跑,可是MDK上s3c2440的启动文件是不完整的,因此不推荐使用,为此蛋疼聊好长一段时间,查了很
[单片机]
s3c2440 ads程序移植到<font color='red'>keil</font>中(二) 初步完成
Keil STM32工程环境搭建
ST官方提供了一套操作STM32各种外围设备的库,使用该库可以快速的搭建STM32工程,简化工作。 一、【安装STM32库】 将下载后的stm32f10x_stdperiph_lib.zip解压后得到三个文件夹分别是: Libraries 、 Project 、 Utilities 将这3个目录复制到 Keil uVision4 的安装目录,和目录中的文件覆盖合并。 二、【新建工程】 1、打开 Keil uVision4 ,在Project菜单中选择新建工程,选择工程要保存的位置,在弹出的“Select Device for target”的对话框中选择使用的STM32单片机的型号如“STM32F103C8”,点确定,然后
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved