Q: How does C51 locate a subroutine segment at a fixed address?
The following two questions need to be solved using C51
: 1. How to locate a subroutine segment at a fixed address?
For example, locate INT BCD2HEX (INT XX) at 1000H
2. HOW to store a string at a fixed location in EEPROM?
For example, put "COPYRIGHT 2001-11" at 200H.
Answer: Function location and variable location...
1. Function location:
If you want to put the function
int BIN2HEX(int xx)
{
...
} in the C source file tools.c
at 0x1000 in CODE MEMORY, compile the project first, then open the M51 file of the project, and find the name of the function to be located under the line
* * * CODE MEMORY * * * , which should be in the form of: CODE xxxxH xxxxH UNIT ?PR?_BCD2HEX?TOOLS Then fill in the following content in : Project->Options for Target ...->BL51 Locate: Code : ?PR?_BCD2HEX?TOOLS(0x1000) Build again, and you will find that the function has been placed at 0x1000 in CODE MEMORY in M51. 2. Variable location with initial value: To locate a variable at an absolute position and assign an initial value, use _at_ If it cannot be completed, do the following: create a new file in the project, such as InitVars.c, and assign an initial value to the variable to be processed (assuming it is the code variable ): char code myVer = {"COPYRIGHT 2001-11"}; then add the file to the project, compile, open the M51 file, if the defined type is code, you can find it under * * * CODE MEMORY * * * : CODE xxxxH xxxxH UNIT ?CO?INITVARS then in: Project->Options for Target ...->BL51 Locate: Code, fill in: ?CO?INITVARS(0x200) and compile again. Correspondingly, if it is an xdata variable, write in InitVars.c: char xdata myVer = {"COPYRIGHT 2001-11"}; then add the file to the project, compile, open the M51 file, and under * * * XDATA MEMORY * * * , you can find: XDATA xxxxH xxxxH UNIT ?XD?INITVARS Then fill in: ?XD?INITVARS(0x200) in: Project->Options for Target ...->BL51 Locate: Xdata and compile again. Correspondingly, if the variables defined are data/idata, etc., just process accordingly. 3. If there are multiple variables or functions to be absolutely located, they should be arranged in order from low to high addresses.
Previous article:Various Problems in C51
Next article:8051 single chip microcomputer TLC1549 data acquisition program source code
Recommended ReadingLatest update time:2024-11-16 12:56
- Popular Resources
- Popular amplifiers
- 西门子S7-12001500 PLC SCL语言编程从入门到精通 (北岛李工)
- Siemens Motion Control Technology and Engineering Applications (Tongxue, edited by Wu Xiaojun)
- How to read electrical control circuit diagrams (Classic best-selling books on electronics and electrical engineering) (Zheng Fengyi)
- MCU C language programming and Proteus simulation technology (Xu Aijun)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- Thank you for your strong faith
- Overview of MCU bus, three-bus structure of MCU
- Comparison summary of MSP430 FR2xx series MCU BSL and MSP432 P series MCU BSL
- Most Popular Blogs of 2021: Connect, Power, and Protect
- Recruiting circuit engineers with high salary (Nantong Intelligent Perception Research Institute, Shanghai Institute of Technical Physics, Chinese Academy of Sciences)
- Does anyone have the schematic diagram of jmb366?
- RK3399 open source motherboard hardware and software information released - free download
- [ESP32-Audio-Kit Audio Development Board Review] Part 1: Building esp-idf and esp-adf development environments based on vs code
- [Raspberry Pi Pico Review] Pico power supply part
- Live broadcast has ended | Microchip's latest SAM and PIC32 microcontroller software development platform - MPLAB Harmony V3