STM32F1xx设置外部SRAM为DataMemory的问题

STM32F103ZET6的FSMC总线上挂载一个512K*8bit的外部SRAM,想把堆栈指针放在该SRAM中,就是想在定义变量如int value,该变量value就自动存放在外部的SRAM中。我的开发软件是IAR,我使用了固件库中的例子稍作修改,因为固件库中的外部SRAM是针对16bit数据总线的,在配置FSMC的时候我给改成8Bit的了。在启动文件startup_stm32f10x_hd.s中有这么几句:
Reset_Handler
LDR R0, =SystemInit
BLX R0

LDR R0, =sfe(CSTACK) ; restore original stack pointer
MSR MSP, R0

LDR R0, =__iar_program_start
BX R0
也就是说在系统进入main函数之前就先调用了一次SystemInit()这个函数,我到这个函数里边去查看发现有初始化FSMC的部分:
#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
#ifdef DATA_IN_ExtSRAM
SystemInit_ExtMemCtl();
#endif /* DATA_IN_ExtSRAM */
#endif
在调用完SystemInit_ExtMemCtl();这个函数之后配置FSMC成功了,但是在最后从
SystemInit()函数结束返回后就立即进入了硬件错误中断void HardFault_Handler(void);求大神帮忙分析或者给指一条明路啊!!!

1个回答

我也遇到同样的问题,楼主解决了吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
STM32ZET6外部链接SRAM运用IAR开发环境 如何链接?

在链接外部SRAm的时候修改ICF链接文件,增加外部SRAm的地址,然后修改启动文件,在初始化和调试时,可以正常向外部SRAM读写数据,在使用的时候较大数组应该自动放在外部,而我这个放不进去 是什么问题?![图片说明](https://img-ask.csdn.net/upload/201903/21/1553139377_542889.png) 如果成功连接外部SRAM的话 这里面会出现第三个么?求IAR大神讲解 如何正确使用外部SRAm!!

stm32f407 AD采集问题

问题描述如下: AD采集用pingpong方式,每个buff区2048个点。单看每个buff区,数据采集没有问题。但是将每个ping \pong 采集数据存储起来,会出现不连续现象,每隔2048个点会出现断裂。有大神能指教一二吗?毕设内容,急!。![pingpong代码](https://img-ask.csdn.net/upload/201704/05/1491397121_327938.png)![存储数据的波形图](https://img-ask.csdn.net/upload/201704/05/1491397324_51807.png)![图片说明](https://img-ask.csdn.net/upload/201704/05/1491397352_714745.png)

STM32767的FMC接口采集AD7606的4个通道数据出现了问题,麻烦各位帮忙纠正,没有C币,定有酬谢

问题:我用STM32CUBE配置的FMC接口,用的NE1,配置好后,但发现NE信号和NOE信号始终为高电平,convst信号接TIM3的PWM模式,频率先给2K,BUSY下降沿进入外部中断通过*(__IO uint16_t *)0x60000000地址读取AD采样值,用ST-LINK在线调试发现每次复位后运行程序四个通道只能读回一组数据,并且数据都相同,只有复位再运行才能再读出一组相同数据,求解。 代码如下: #include "stm32f7xx_hal.h" #define AD7606_RESULT() *(__IO uint16_t *)0x60000000 TIM_HandleTypeDef htim3; SRAM_HandleTypeDef hsram1; void SystemClock_Config(void); void Error_Handler(void); static void MX_GPIO_Init(void); static void MX_FMC_Init(void); static void MX_TIM3_Init(void); void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); int16_t RawData[4]; int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_FMC_Init(); MX_TIM3_Init(); HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1); while (1) { } } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; __HAL_RCC_PWR_CLK_ENABLE(); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 25; RCC_OscInitStruct.PLL.PLLN = 432; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; RCC_OscInitStruct.PLL.PLLQ = 2; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } if (HAL_PWREx_EnableOverDrive() != HAL_OK) { Error_Handler(); } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7) != HAL_OK) { Error_Handler(); } HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); } /* TIM3 init function */ static void MX_TIM3_Init(void) { __HAL_RCC_FMC_CLK_ENABLE(); TIM_MasterConfigTypeDef sMasterConfig; TIM_OC_InitTypeDef sConfigOC; htim3.Instance = TIM3; htim3.Init.Prescaler = 999; htim3.Init.CounterMode = TIM_COUNTERMODE_UP; htim3.Init.Period = 539; htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; if (HAL_TIM_PWM_Init(&htim3) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) { Error_Handler(); } sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 269; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) { Error_Handler(); } HAL_TIM_MspPostInit(&htim3); } /* FMC initialization function */ static void MX_FMC_Init(void) { FMC_NORSRAM_TimingTypeDef Timing; /** Perform the SRAM1 memory initialization sequence */ hsram1.Instance = FMC_NORSRAM_DEVICE; hsram1.Extended = FMC_NORSRAM_EXTENDED_DEVICE; /* hsram1.Init */ hsram1.Init.NSBank = FMC_NORSRAM_BANK1; hsram1.Init.DataAddressMux = FMC_DATA_ADDRESS_MUX_DISABLE; hsram1.Init.MemoryType = FMC_MEMORY_TYPE_SRAM; hsram1.Init.MemoryDataWidth = FMC_NORSRAM_MEM_BUS_WIDTH_16; hsram1.Init.BurstAccessMode = FMC_BURST_ACCESS_MODE_DISABLE; hsram1.Init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_LOW; hsram1.Init.WaitSignalActive = FMC_WAIT_TIMING_BEFORE_WS; hsram1.Init.WriteOperation = FMC_WRITE_OPERATION_DISABLE; hsram1.Init.WaitSignal = FMC_WAIT_SIGNAL_DISABLE; hsram1.Init.ExtendedMode = FMC_EXTENDED_MODE_DISABLE; hsram1.Init.AsynchronousWait = FMC_ASYNCHRONOUS_WAIT_DISABLE; hsram1.Init.WriteBurst = FMC_WRITE_BURST_DISABLE; hsram1.Init.ContinuousClock = FMC_CONTINUOUS_CLOCK_SYNC_ONLY; hsram1.Init.WriteFifo = FMC_WRITE_FIFO_ENABLE; hsram1.Init.PageSize = FMC_PAGE_SIZE_NONE; /* Timing */ Timing.AddressSetupTime = 50; Timing.AddressHoldTime = 0; Timing.DataSetupTime = 60; Timing.BusTurnAroundDuration = 0; Timing.CLKDivision = 0; Timing.DataLatency = 0; Timing.AccessMode = FMC_ACCESS_MODE_A; /* ExtTiming */ if (HAL_SRAM_Init(&hsram1, &Timing, NULL) != HAL_OK) { Error_Handler(); } } /** Configure pins as * Analog * Input * Output * EVENT_OUT * EXTI */ static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENABLE(); __HAL_RCC_GPIOG_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_GPIOK_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOE_CLK_ENABLE(); /*Configure GPIO pin : PG12 */ GPIO_InitStruct.Pin = GPIO_PIN_12; GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); /*Configure GPIO pin : PG9 */ GPIO_InitStruct.Pin = GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLDOWN; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLDOWN; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); HAL_GPIO_WritePin(GPIOG, GPIO_PIN_7, GPIO_PIN_SET); /*Configure GPIO pins : PK2 PK0 */ GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLDOWN; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOK, &GPIO_InitStruct); /*Configure GPIO pins : PK2 PK0 */ /* GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_4; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_PULLDOWN; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);*/ //HAL_GPIO_WritePin(GPIOD, GPIO_PIN_7, GPIO_PIN_SET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOG, GPIO_PIN_9, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOK, GPIO_PIN_2|GPIO_PIN_0, GPIO_PIN_RESET); /* EXTI interrupt init*/ HAL_NVIC_SetPriority(EXTI15_10_IRQn, 2, 2); HAL_NVIC_EnableIRQ(EXTI15_10_IRQn); } void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { RawData[0]=AD7606_RESULT(); RawData[1]=AD7606_RESULT(); RawData[2]=AD7606_RESULT(); RawData[3]=AD7606_RESULT(); void Error_Handler(void) { while(1) { } } #ifdef USE_FULL_ASSERT void assert_failed(uint8_t* file, uint32_t line) { } #endif

keil 中编译stm32程序的内存问题

![图片说明](https://img-ask.csdn.net/upload/201612/16/1481884737_585791.png) zi-data 部分超过了mcu中sram的大小,为啥编译运行都没问题呢? 求解释啊

请教一下~使用C6701开发,怎么配置EMIF CE0控制寄存器访问外部SRAM?谢谢!

各位大神 请教一下 使用C6701开发,怎么配置EMIF CE0控制寄存器访问外部SRAM? 外部SRAM 芯片采用的是AT68166 连接到C6701的CE0接口处 AT68166芯片与C6701控制信号有/AWE /OE /CE 参考了两芯片的相关官方文档 尝试对CE0控制寄存器进行时序配置 即WRSETUP WRSTR WRHLD RDSETUP RDSTR RDHLD 调试过程根据datasheet计算了时序参数 配置CE0CTL寄存器 调用CSL库EMIF_getConfig()查看EMIF 配置 确认配置成功 但采用示波器对/AWE /OE /CE 信号进行测量 结果显示 对CE0寄存器的配置未改变实际输出时序 CCS在线调试的读写操作无法读取正确的数据 经过多次尝试修改CE0CTL寄存器参数 无法实现对输出信号时序的更改 且实际测量时序与EMIF官方文档说明不一致 请各位前辈大神指教 !!!谢谢~

STM32F013用FSMC驱动SSD1289控制气的问题

尊敬的大侠们,菜鸟我刚买了个stm32f103的板子,用fsmc驱动时发现当你使用变化的数据流往寄存器写数据时(即显示图片时),他无法刷屏,直接是当前的刷屏背景,复位都没有用,但是你写入一种颜色数据确实正常的....代码附上,求大神帮忙 、、、、、、、、、、、、这是LCD.C中的、、、、、、、、、、、、、、、、、、、 #include "include.h" /* *函数名: void LCD_FSMCConfig(void) *描述: 初始化FSMC *输入参数: *返回值: *调用方法: 直接调用 */ void LCD_FSMCConfig(void) { FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef p; //设置地址建立时间 p.FSMC_AddressSetupTime = 5; //设置地址保持时间 p.FSMC_AddressHoldTime = 0; //设置数据建立时间 p.FSMC_DataSetupTime = 10; //总线返转时间 p.FSMC_BusTurnAroundDuration = 0; //时钟分频 p.FSMC_CLKDivision = 0; //数据保持时间 p.FSMC_DataLatency = 0; //FSMC选用模式 p.FSMC_AccessMode = FSMC_AccessMode_A; //选择设置的BANK以及片选信号(BANK1中的第一个block) FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1; //设置是否数据地址总线时分复用(No) FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; //设置存储器类型(NOR) FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR; //设置数据宽度(16bit) FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; //设置是否使用迸发访问模式(连续读写模式)(No) FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; //设置WAIT信号的有效电平(低电平有效) FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; //设置是否使用还回模式(No) FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; //设置WAIT信号有效时机(在wait状态之前) FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; //设置是否使能写操作(Yes) FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; //设置是否使用WAIT信号(No) FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; //设置是否使用扩展模式(读写时序相互独立)(No) FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; //设置是否使用迸发写模式(No) FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; //设定读写时序 FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p; FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p; FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); /* Enable FSMC Bank1_SRAM Bank */ FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE); } /* *函数名: void LCD_IOConfig(void) *描述: 初始化LCD的IO口 *输入参数: *返回值: *调用方法: 直接调用 */ void LCD_IOConfig(void) { GPIO_InitTypeDef GPIO_InitStructure; //打开FSMC时钟和GPIO口时钟 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO,ENABLE); /********************打开FSMC的数据端口D[15:0]****************************/ /*初始化GPIOD口,电路图从左至右*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14|GPIO_Pin_0|GPIO_Pin_9| GPIO_Pin_5|GPIO_Pin_15|GPIO_Pin_1|GPIO_Pin_8|GPIO_Pin_10 |GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOD , &GPIO_InitStructure); /*初始化GPIOE口,电路图从左至右*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_11| GPIO_Pin_13|GPIO_Pin_15|GPIO_Pin_8|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_14; GPIO_Init(GPIOE , &GPIO_InitStructure); /* RS接PD11---A16*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11; GPIO_Init(GPIOD , &GPIO_InitStructure); /*NE1------LCD_CS--->GPIOD-7*/ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7; GPIO_Init(GPIOD , &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_ResetBits(GPIOD, GPIO_Pin_12);//取消LCD 的复位 } /* *函数名: void delay_ms(uint16_t ms) *描述: *输入参数: *返回值: *调用方法: */ void delay_ms(uint16_t ms) { uint16_t i,j; for( i = 0; i < ms; i++ ) { for( j = 0; j < 1141; j++ ); } } /* *函数名: __inline void LCD_WriteReg(uint16_t LCD_Reg,uint16_t LCD_RegValue) *描述: 写LCD寄存器(内联写寄存器,不重入压栈,加快速度) *输入参数: LCD寄存器地址和写入寄存器的值 *返回值: *调用方法: */ __inline void LCD_WriteReg(uint16_t LCD_Reg,uint16_t LCD_RegValue) { /* 写入寄存器16位地址然后写入寄存器的值 */ // Clr_Cs;RS=0; BANK1_LCD_REG=LCD_Reg; /* Write 16-bit Reg , RS=1*/ BANK1_LCD_RAM=LCD_RegValue; // Set_Cs; } /* *函数名: void LCD_SetCursor() *描述: 设置LCD数据写入的起始坐标0x4e--xpos,0x4f---ypos; *输入参数: LCD寄存器地址和写入寄存器的值 *返回值: *调用方法: */ void LCD_SetCursor(uint16_t Xpos , uint16_t Ypos) { LCD_WriteReg(0x004e , Xpos); LCD_WriteReg(0x004f , Ypos); } /* *函数名: LCD_GetPoint(xpos , ypos); *描述: 获取屏幕上一个点的颜色数据 *输入参数: 坐标参数 *返回值: 颜色数据 *调用方法: */ uint16_t LCD_GetPoint(uint16_t Xpos , uint16_t Ypos) { uint16_t RGBColor=0; LCD_SetCursor( Xpos , Ypos); BANK1_LCD_REG=0x22; RGBColor=BANK1_LCD_RAM; RGBColor=BANK1_LCD_RAM; return RGBColor; } /* *函数名: LCD_SetPoint(xpos , ypos); *描述: 在屏幕上打一个点 *输入参数: 坐标参数 *返回值: *调用方法: */ void LCD_SetPoint(uint16_t Color) { BANK1_LCD_RAM=Color; } /* *函数名: LCD_SetDispArea *描述: 设置显示区域 *输入参数: 起始终止坐标 *返回值: *调用方法: */ void LCD_SetDispArea(uint16_t Xspos , uint16_t Yspos , uint16_t Xepos , uint16_t Yepos) { LCD_WriteReg(0x44,Xspos+(Xepos<<8)); /*水平坐标起始(低八位)和终止(高八位)*/ LCD_WriteReg(0x45,Yspos); /*Yspos*/ LCD_WriteReg(0x46,Yepos); /*Yepos*/ } /* *函数名: LCD_ClearArea(uint16_t Xspos , uint16_t Yspos , uint_t Xepos ,uint_t Yepos,uint16_t Color) *描述: 清屏 *输入参数: *返回值: *调用方法: */ void LCD_Clear(uint16_t Color) { int i=0; LCD_SetDispArea(0, 0,239,320); LCD_SetCursor(0 , 0); BANK1_LCD_REG=0x22; for(i=0 ; i<240*320 ; i++) { LCD_SetPoint(Color); } } void DispImag(const unsigned char *Image , unsigned int Lenth) { int i=0; uint16_t Color; LCD_SetDispArea(0, 0,239,320); LCD_SetCursor(0 , 0); BANK1_LCD_REG=0x22; if(i<Lenth/2) { Color = (u16)(Image[2*i]<<8) + Image[2*i+1]; BANK1_LCD_RAM=Color; i++; } } /* *函数名: void LCD_Init(void) *描述: 初始化LCD *输入参数: *返回值: *调用方法: 直接调用 */ void LCD_Init(void) { LCD_IOConfig(); LCD_FSMCConfig(); GPIO_ResetBits(GPIOD, GPIO_Pin_12); LCD_WriteReg(0x0000,0x0001); //打开晶振 LCD_WriteReg(0x0003,0xA8A4); //0xA8A4 LCD_WriteReg(0x000C,0x0000); LCD_WriteReg(0x000D,0x080C); LCD_WriteReg(0x000E,0x6800); LCD_WriteReg(0x001E,0x00B0); LCD_WriteReg(0x0001,0x6B3F); //驱动输出控制320*240 0x693F 0x2B3F 0x293F LCD_WriteReg(0x0002,0x0600); //LCD Driving Waveform control LCD_WriteReg(0x0010,0x0000); LCD_WriteReg(0x0011,0x6078); //0x4030 //定义数据格式 16位色 0x6070 横屏 0x6058 LCD_WriteReg(0x0005,0x0000); LCD_WriteReg(0x0006,0x0000); LCD_WriteReg(0x0016,0xEF1C); LCD_WriteReg(0x0017,0x0003); LCD_WriteReg(0x0007,0x0233); //0x0233 LCD_WriteReg(0x000B,0x0000); LCD_WriteReg(0x000F,0x0000); //扫描开始地址 LCD_WriteReg(0x0041,0x0000); LCD_WriteReg(0x0042,0x0000); LCD_WriteReg(0x0048,0x0000); LCD_WriteReg(0x0049,0x013F); LCD_WriteReg(0x004A,0x0000); LCD_WriteReg(0x004B,0x0000); LCD_WriteReg(0x0044,0xEF00); LCD_WriteReg(0x0045,0x0000); LCD_WriteReg(0x0046,0x013F); LCD_WriteReg(0x0030,0x0707); LCD_WriteReg(0x0031,0x0204); LCD_WriteReg(0x0032,0x0204); LCD_WriteReg(0x0033,0x0502); LCD_WriteReg(0x0034,0x0507); LCD_WriteReg(0x0035,0x0204); LCD_WriteReg(0x0036,0x0204); LCD_WriteReg(0x0037,0x0502); LCD_WriteReg(0x003A,0x0302); LCD_WriteReg(0x003B,0x0302); LCD_WriteReg(0x0023,0x0000); LCD_WriteReg(0x0024,0x0000); LCD_WriteReg(0x0025,0x8000); LCD_WriteReg(0x004e,0); //列(X)首址0 LCD_WriteReg(0x004f,0); //行(Y)首址0 } 、、、、、、、、、、、、、、这是LCD.H的、、、、、、、、、、、、、、、、、、、、、 #ifndef _LCD_H_ #define _LCD_H_ #include "include.h" /* Private define ------------------------------------------------------------*/ /* 挂载于不同的BANK,使用不同地址是自行换算 */ #define BANK1_LCD_REG (*((volatile unsigned short *) 0x60000000)) /*RS = 0 ,写寄存器值*/ #define BANK1_LCD_RAM (*((volatile unsigned short *) 0x60020000)) /*RS = 1 ,写寄存器索引*/ /* LCD Color */ #define LCD_COLOR_WHITE 0xFFFF #define LCD_COLOR_BLACK 0x0000 #define LCD_COLOR_GREY 0xF7DE #define LCD_COLOR_BLUE 0x001F #define LCD_COLOR_BLUE2 0x051F #define LCD_COLOR_RED 0xF800 #define LCD_COLOR_MAGENTA 0xF81F #define LCD_COLOR_GREEN 0x07E0 #define LCD_COLOR_CYAN 0x7FFF #define LCD_COLOR_YELLOW 0xFFE0 /** * @brief LCD Registers */ void FMSC_Init(void); void LCD_IOInit(void); void LCD_Init(void); __inline void LCD_WriteReg(uint16_t LCD_Reg,uint16_t LCD_RegValue); void LCD_Clear(uint16_t Color); uint16_t LCD_GetPoint(uint16_t Xpos , uint16_t Ypos); void DispImag(const unsigned char *Image , unsigned int Lenth); #endif

请教FSMC驱动外部sram

pa = 6; pa=pa<<1; (*((volatile unsigned short *) (0x64000000|pa)))=InitValue; 结果发现,实际的效果为pa=1,和pa反向,无论pa送什么值都是这样,觉得和FSMC的设置有关,请大侠帮看看 static void Board_FSMCConfig(void) { FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef FSMC_NORSRAMTimingInitStructure; /* FSMC读速度设置 */ FSMC_NORSRAMTimingInitStructure.FSMC_AddressSetupTime = 0x0f; /* 地址建立时间 */ FSMC_NORSRAMTimingInitStructure.FSMC_AddressHoldTime = 0x0f; FSMC_NORSRAMTimingInitStructure.FSMC_DataSetupTime = 0x0f; /* 数据建立时间 */ FSMC_NORSRAMTimingInitStructure.FSMC_BusTurnAroundDuration = 0x00; FSMC_NORSRAMTimingInitStructure.FSMC_CLKDivision = 0x00; FSMC_NORSRAMTimingInitStructure.FSMC_DataLatency = 0x00; FSMC_NORSRAMTimingInitStructure.FSMC_AccessMode = FSMC_AccessMode_B; /* FSMC 访问模式 */ FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM2; FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &FSMC_NORSRAMTimingInitStructure; FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); /* FSMC写速度设置 */ FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); /* Enable FSMC Bank4_SRAM Bank */ FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM2, ENABLE); }

2440 sdram 运行程序问题

我按照韦东山的教程,做sdram驱动,然后程序从sram拷贝到sdram里运行时,程序就出现问题了,同样的led流水灯程序,在下载到nand flash后就可以正常运行,在加载到sdram后就不行了。有高手能帮忙解决解决吗??

用8KX8的RAM存储器芯片构成32kX8的存储器,存储器起始地址为1800H

用8KX8的RAM存储器芯片构成32kX8的存储器,存储器起始地址为1800H,要求芯片地址连续,用74LS138作译码器

fpga sram 读写不成功?

--为什么下列程序在xie0的check_error不变为一,而在du0xiex立马为一? LIBRAry ieee ; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; -- Uncomment the following library declaration if using -- arithmetic functions with Signed or Unsigned values --use IEEE.NUMERIC_STD.ALL; -- Uncomment the following library declaration if instantiating -- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity checkram1 is port ( ram_ce : out std_logic ; --ram pian xuan,di you xiao ram_we : out std_logic; --ram xie shi neng,di you xiao ram_oe: out std_logic; --ram hu chu shi neng,di you xiao ram_db : inout std_logic_vector(15 downto 0); --ram shu ju duan ram_addr : out std_logic_vector (18 downto 0); --ram di zhi ram_ub: out std_logic;ram_lb: out std_logic; checkram_ce : in std_logic ; clk_50m : in std_logic ; check_error : out std_logic :='1' ; check_over: out std_logic :='1' ); end checkram1; architecture Behavioral of checkram1 is signal ram_db_in : std_logic_vector(15 downto 0); signal ram_db_out : std_logic_vector(15 downto 0); signal ram_db_io : std_logic ; --ram_db输入输出控制,1输出,0输入 signal addr :std_logic_vector (18 downto 0) :="0000000000000000000"; --地址变量-- type states is (xie0,du0xiex,dux,dengdai); --状态类型 signal state :states := dengdai; --当前状态 signal timeofxie0 : std_logic_vector (7 downto 0) :="00000000"; --xie0计时标记 signal timeofdu0xiex : std_logic_vector (7 downto 0) :="00000000";--du0xiex计时标记 signal timeofdux : std_logic_vector (7 downto 0) :="00000000";--dux计时标记 begin -- process (clk_50m,ram_db_io,ram_db_out) -- begin -- if (ram_db_io = '1' ) then -- ram_db <= ram_db_out; -- else ram_db <= (others=>'Z'); -- end if; -- end process ; --ram_db <= ram_db_out when ram_db_io ='1' else "ZZZZZZZZZZZZZZZZ"; process (clk_50m) begin if rising_edge(clk_50m) then case state is when dengdai => ram_addr <=(others =>'Z'); ram_db <=(others =>'Z'); ram_ce <='1';ram_oe <='1';ram_we <='1'; if checkram_ce = '0' then addr <= "0000000000000000000";state <= dengdai; else addr <= "0000000000000000000"; state <= xie0;check_error <= '1';check_over <= '1';end if; when xie0 => case timeofxie0 is when "00000000"=> ram_db<="0000000000000001";ram_addr <=addr; ram_db_io <= '1'; ram_ce<='0';ram_we<='1';ram_oe<='1';state<=xie0; when "00000001"=> ram_ce<='0';ram_we<='0';ram_oe<='1';state<=xie0; when "00000011"=> ram_ce<='0';ram_we<='1';ram_oe<='1';state<=xie0; when "00001000"=> ram_addr <= addr;ram_ce<='0';ram_we<='1';ram_oe<='1';ram_db_io <= '0';state<=xie0; when "00001001"=> ram_ce<='0';ram_we<='1';ram_oe<='0';state<=xie0; when "00001011"=> ram_db_in <= ram_db; state<=xie0; when "00001100"=> ram_ce<='0';ram_we<='1';ram_oe<='1'; state<=xie0; when "01000000"=> if ram_db_in /= "0000000000000001" then check_error <= '0';end if; when "01010000"=> if addr="1111111111111111111" then addr<="0000000000000000000";state <= du0xiex; else addr<=addr+1;end if; when others => state <= xie0; end case; when du0xiex => case timeofdu0xiex is when "00000000"=> ram_addr <= addr;ram_ce<='0';ram_we<='1';ram_oe<='1';ram_db_io <= '0';state<=du0xiex; when "00000001"=> ram_ce<='0';ram_we<='1';ram_oe<='0';state<=du0xiex; when "00000011"=> ram_db_in <= ram_db; state<=du0xiex; when "00000100"=> ram_ce<='0';ram_we<='1';ram_oe<='1'; state<=du0xiex; when "01010000"=> if ram_db_in /= "0000000000000000" then check_error <= '0';end if; when "01010001"=> ram_db<=addr(15 downto 0);ram_addr <=addr; ram_db_io <= '1'; ram_ce<='0';ram_we<='1';ram_oe<='1';state<=du0xiex; when "01010010"=> ram_ce<='0';ram_we<='0';ram_oe<='1';state<=du0xiex; when "01010100"=> ram_ce<='0';ram_we<='1';ram_oe<='1';state<=du0xiex; when "10100001"=> if addr="1111111111111111111" then addr<="1111111111111111111";state <= dux; else addr<=addr+1;end if; when others => state <= du0xiex; end case; when dux => case timeofdux is when "00000000"=> ram_addr <= addr;ram_ce<='0';ram_we<='1';ram_oe<='1';ram_db_io <= '0';state<=dux; when "00000001"=> ram_ce<='0';ram_we<='1';ram_oe<='0';state<=dux; when "00000011"=> ram_db_in <= ram_db; state<=dux; when "00000100"=> ram_ce<='0';ram_we<='1';ram_oe<='1'; state<=dux; when "01010000"=> if ram_db_in /= addr then check_error <= '0';end if; when "01010001"=> if addr="0000000000000000000" then addr<="0000000000000000000";state <= dengdai;check_over <= '0'; else addr<=addr-1;end if; when others => state <= dux; end case; end case; end if; end process; xie0jishi:process (clk_50m) begin if rising_edge(clk_50m) then if state = xie0 then if timeofxie0 = "01010000" then timeofxie0 <="00000000"; else timeofxie0 <= timeofxie0 + 1; end if; else timeofxie0<= "00000000"; end if; end if; end process xie0jishi; du0xiexjishi:process (clk_50m) begin if rising_edge(clk_50m) then if state = du0xiex then if timeofdu0xiex = "10100001" then timeofdu0xiex <="00000000"; else timeofdu0xiex <= timeofdu0xiex + 1; end if; else timeofdu0xiex<= "00000000"; end if; end if; end process du0xiexjishi; duxjishi:process (clk_50m) begin if rising_edge(clk_50m) then if state = dux then if timeofdux = "01010001" then timeofdux <="00000000"; else timeofdux <= timeofdux + 1; end if; else timeofdux<= "00000000"; end if; end if; end process duxjishi; end Behavioral;

GCC程序移植到MDK下报错

invalid origin for memory region FLASH collect2.exe: error: ld returned 1 exit status 请求有做过的大神来一波助攻

如何将自定义类的对象保存在Arduino的Flash中?

最近在编写Arduino Uno上的程序时,遇到了内存不足的问题。鉴于在Flash里头的内存空间十分充裕,而SRAM中只有2k bytes,我希望能够把自己定义类的对象数据保存在Flash里头,等到需要调用的时候再调到SRAM里头进行处理。不知哪位大神能够指导一下这需要如何操作呀? 最好额外说明一下,读与写两种情况,并给几个例子哟!谢谢啦!

arm程序的启动部分,分配堆栈是怎么确定的

![![![图片说明](https://img-ask.csdn.net/upload/201607/18/1468810661_913000.png)图片说明](https://img-ask.csdn.net/upload/201607/18/1468810644_843680.png)图片说明](https://img-ask.csdn.net/upload/201607/18/1468810582_897181.png) 当给堆栈都设置为2048的时候编译显示空间不够,应该是ram不够用了,这时候是不用应该增加ram的空间吧,但是反而把2048改为1024,编译就过了,??? 还有sram一共16KB,这个堆栈大小的size设置有什么要求吗

cache读写问题【一道考试题】

![图片说明](https://img-ask.csdn.net/upload/201606/15/1465971523_961087.jpg)

avr如何将字符定义在flash

我的程序如下: unsigned char __flash DIS_STUDY[] = "** STUDY **"; DispStr((unsigned char*)DIS_STUDY,0); void DispStr( unsigned char* str, unsigned char sit ) {//把传送来字符串显示在指定位置上 unsigned char chr; if( sit >= 80 ) //4行显示 sit = 0; //显示位置出错,设为0 while( ( chr = *str++ ) != '\0' ) { DispByte( chr, sit ); sit++; } } 编译没有问题,也没有增加sram空间,但是运行的时候显示乱码 请教如何修改

vcs 仿真 生成simv文件 的错误

vcs 仿真 生成simv文件时,有一句g++ -o ../simv .... -lswift 路径这是什么意思啊? 我现在的问题是 /usr/bin/ld:cannot find -lswift collect2: ld returned 1exit status make *** [procduct_timestamp]Error1 Make exited with status 2 希望大神解答一下

Cubic Tick-Tack-Toe

Description Tick-Tack-Toe is a famous simple game that is played on 3*3 grids. Two players put stones in the grids alternately and each one has his own color of stones that differ from the opponent's. The player that first gets a line of three stones vertically, horizontally, or diagonally wins the game. If the grids are all filled and no one makes a line of tree stones, the game is called a draw. Sram Eel loves playing Tick-Tack-Toe very much. He plays it with his friend Tzxhsw every day. However, because of his weak skills, he always loses the game. Recently, he finally angers and decides to change the game to make it more interesting, that is, Cubic Tick-Tack-Toe! Cubic Tick-Tack-Toe is played in 3*3*3 grids. Players put stones in the grids from bottom to top alternately, i.e. a stone cannot be putted in a grid, which is upon an empty grid. A player can win the game through getting one of the 49 lines of three stones. Tzxhsw is not so skilled in such a strange game, so she requests your help. To show your pure virtue, please put up your hands and knock on your keyboard! Input The input contains multiple test cases. Each test case contains 9 lines describing the current grids. A '.' denotes an empty grid, a 'O' denotes a stone put by the player taking the first turn, and a 'X' denotes a stone put by another player. The grids are described from bottom to top. Your program should estimate which player takes the next turn and analyze whether he can win the game or not. Output There is only one line for each test case. If the player taking the next turn can manage to win the game, print "WIN". If he will lose, print "LOSE". If the game will become a draw, print "DRAW". Sample Input OXX ..O ... XO. ... ... OX. ... ... OX. ... ..O XO. ... ... OX. ... ... Sample Output WIN LOSE

TQ2440板子在烧写程序时出现很奇怪的现象。

板子上的norflash已经固化了厂家的Uboot,然后从NorFlash启动板子,使用TQBoardDNW烧写程序,我用MDK自己写了一个流水灯的程序,根据网上的一个链接写的(http://wenku.baidu.com/link?url=KjANWUKp1_aI13HQdM7hVn9wovFMs4CTI1_3r1v5B8jtPM6JGdg-5k3pDnXRh2If9EkoWhnRn6SWdBVdtrc_MAVVbVvlpDHiN-e3VZHDZfa),编译后的bin文件只能固化到NandFlash上运行,不能直接下载到SRAM上运行,而网上的另外一个流水灯程序(http://blog.chinaunix.net/uid-25977911-id-2237972.html)刚好相反,不能在固化到NandFlash上运行,但是可以直接下载到SRAM上运行,而厂家给的用ADS1.2写的程序两则都可以,为什么?

关于arm-liunx-ld -Ttext的问题

对于启动时,用NANDFLASH启动,启动时,ARM会把nandflash中的前4K内容拷贝到sram中,并从0x00000开始,但是用arm-linux-ld -Ttext=0x30000000,这样启动为什么可以启动,不是应该在0x000000启动吗?怎么又可以跳到0x3000000启动呢

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐