性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

Samsung單片機C語言(IAR)應用

本人用過三星單片機如S3F9488、S3F9454、S3F9498,以前一直是用匯編編程OPENICE-I500,現(xiàn)在改用C,遇到幾個小問題已解決的或未解決的,希望能與各位聊聊,以增加對C語言的了解.
1、頭文件:S3F9488的頭文件用ioS3C9488.h,因為S3F9488與S3C9488的規(guī)格書是相同的只是前者是FLASH,后者是OTP,
2、編譯后.lst文件會有如AND 0xDF,#252的語句,從語句分析是編譯器指向PAGE0,但實際我沒有用到PAGE1,一直是在PAGE0操作.(只針對9488,其它不知是否也會)

如果各位有匯編或C語言的問題,請?zhí)岢?我盡力給你答復
全部回復(8)
正序查看
倒序查看
wwy_0168
LV.2
2
2007-08-14 22:33
先自頂

以下是一段24C02的程序

void AT24CXX_WriteFullPage( unsigned int wAddress , unsigned char* pBuffer )
{
    unsigned char ucVar;
    
    while ( AT24CXX_Enabled() == FALSE );
    AT24CXX_Start();
    AT24CXX_SetWriteAddress( wAddress );
    for ( ucVar = 0 ; ucVar < AT24CXX_PAGESIZE ; ucVar ++ )
        AT24CXX_Write( pBuffer[ ucVar ] );
    AT24CXX_Stop();
}
/******************************************************************************/

下面是編譯后的.lst文件

   \                                 In segment CODE, align 1, keep-with-next
    193          void AT24CXX_WriteFullPage( unsigned int wAddress , unsigned char* pBuffer )
   \                     AT24CXX_WriteFullPage:
   \   0000                          REQUIRE __INIT_STACK
    194          {
   \   0000                  ; * Stack frame (at entry) *
   \   0000                  ; Param size: 0
   \   0000                            
   \   0000   70C9           PUSH      R9
   \   0002   70C8           PUSH      R8
   \   0004   70C7           PUSH      R7
   \   0006   70C6           PUSH      R6
   \   0008                  ; Saved register size: 4
   \   0008                  ; Auto size: 0
   \   0008   68CE           LD        R6,R14
   \   000A   78CF           LD        R7,R15
   \   000C   88CC           LD        R8,R12
   \   000E   98CD           LD        R9,R13
    195              unsigned char ucVar;
    196              
    197              while ( AT24CXX_Enabled() == FALSE );
   \                     ??AT24CXX_WriteFullPage_0:
   \   0010                  ; Setup parameters for call to function AT24CXX_Enabled
   \   0010   F6....         CALL      AT24CXX_Enabled
   \   0013   42FF           OR        R15,R15
   \   0015   6BF9           JR        Z,??AT24CXX_WriteFullPage_0
    198              AT24CXX_Start();
   \   0017                  ; Setup parameters for call to function AT24CXX_Start
   \   0017   F6....         CALL      AT24CXX_Start
    199              AT24CXX_SetWriteAddress( wAddress );
   \   001A                  ; Setup parameters for call to function AT24CXX_SetWriteAddress
   \   001A   E8C6           LD        R14,R6
   \   001C   F8C7           LD        R15,R7
   \   001E   F6....         CALL      AT24CXX_SetWriteAddress
    200              for ( ucVar = 0 ; ucVar < AT24CXX_PAGESIZE ; ucVar ++ )
   \   0021   B0C7           CLR       R7
   \   0023   8B12           JR        ??main_4
    201                  AT24CXX_Write( pBuffer[ ucVar ] );
   \                     ??AT24CXX_WriteFullPage_1:
   \   0025                  ; Setup parameters for call to function AT24CXX_Write
   \   0025   E8C8           LD        R14,R8
   \   0027   F8C9           LD        R15,R9
   \   0029   02F7           ADD       R15,R7
   \   002B   44CEDF         OR        0xDF,R14
   \   002E   C7FF           LD        R15,@R15
   \   0030   56DFFC         AND       0xDF,#252
   \   0033   F6....         CALL      AT24CXX_Write
   \   0036   7E             INC       R7
   \                     ??main_4:
   \   0037   A6C708         CP        R7,#8
   \   003A   7BE9           JR        ULT,??AT24CXX_WriteFullPage_1
    202              AT24CXX_Stop();
   \   003C                  ; Setup parameters for call to function AT24CXX_Stop
   \   003C   F6....         CALL      AT24CXX_Stop
    203          }
   \   003F   50C6           POP       R6
   \   0041   50C7           POP       R7
   \   0043   50C8           POP       R8
   \   0045   50C9           POP       R9
   \   0047   AF             RET      
   \   0048                          REQUIRE ?CLSAM8_2_L00
    204          /******************************************************************************/
    205          

問題就在于有AND       0xDF,#252的行,還有就是入棧,這并不是在中斷,可是卻有入棧?哪位高手來講述一下.
0
回復
nongfu
LV.4
3
2008-12-06 17:57
@wwy_0168
先自頂以下是一段24C02的程序voidAT24CXX_WriteFullPage(unsignedintwAddress,unsignedchar*pBuffer){    unsignedcharucVar;        while(AT24CXX_Enabled()==FALSE);    AT24CXX_Start();    AT24CXX_SetWriteAddress(wAddress);    for(ucVar=0;ucVar
0
回復
2009-09-05 22:24
兄弟我的OPENICE I500  怎么導不進C語言編的項目文件呀
0
回復
2010-05-07 22:34

你好,本人正在學習單片機,可否幫解析程序邏輯圖和注解語句!萬分感謝!SVC552 TDR 

0
回復
2010-05-07 22:36
@yuhonglinxs
你好,本人正在學習單片機,可否幫解析程序邏輯圖和注解語句!萬分感謝![圖片]SVC552 [圖片]TDR 

本人聯(lián)系E-mail:lglxj@163.com,qq:847870544

0
回復
lyxyxls
LV.1
7
2010-05-12 15:34
@yuhonglinxs
本人聯(lián)系E-mail:lglxj@163.com,qq:847870544

請問你用什么軟件編寫S3F9454 C程序。

0
回復
2014-03-26 17:16
@lyxyxls
請問你用什么軟件編寫S3F9454C程序。
為什么我看不到回復的帖子?
0
回復
2014-03-26 17:17
@鼴鼠先生
為什么我看不到回復的帖子?

請問你用什么軟件編寫S3F9454 C程序?我也想知道

0
回復
發(fā)