程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10347|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: f- Y) K5 C  z) ^. z( x
#include <linux/init.h>/ D8 V8 \" H1 N# w% _8 g; u* M
#include <linux/module.h>
) _. z7 i4 Y7 e% y- E#include <linux/kernel.h>
# n2 p7 |" l& g2 I! D; ~* N) ]#include <linux/types.h>8 e, t7 Q6 J6 h- r+ x2 [2 G
#include <linux/gpio.h>! {1 U# W. i+ E, I8 z7 S4 E! B' p, v
#include <linux/leds.h>
5 z8 t, o+ S8 {) ]) l#include <linux/platform_device.h>
5 A# `8 G% x) C& S) |- ^# R5 p
/ L4 h. G7 L: m, i( }2 }#include <asm/mach-types.h>2 D/ L/ Q5 Z% S; y" G4 H
#include <asm/mach/arch.h>/ x, R4 Q0 E! f( T* j6 e( z
#include <mach/da8xx.h>3 T' @' a% }5 X$ a) q
#include <mach/mux.h>5 B) Q  C( u4 a

% B8 P8 L1 A1 L! @' B0 P2 z9 ^- c' m#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 P! x! u# d7 H( k! ]6 e- v3 ]#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 K9 p3 e$ i  F' W  ?
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) W  x3 ^: \; v9 R% c#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 x$ V  W" Y3 }1 z: |
7 p7 H5 O) h3 q6 U& S  u+ c. p/* assign the tl som board LED-GPIOs*/
0 G( _1 h5 [' z4 D* R# w& Lstatic const short da850_evm_tl_user_led_pins[] = {1 l/ v" E- ~0 G6 Y( c& x
        /* These pins are definition at <mach/mux.h> file */
4 {; O% X! N7 \) C) ?. M1 F        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 A, D; I1 ]  \% t  n  g        -1' ?+ \0 m+ {/ H. P
};
4 L1 \5 P7 h2 @. Q- i2 r& W7 a; J1 c4 F0 n9 T2 P
static struct gpio_led da850_evm_tl_leds[] = {
$ i; o" _3 A+ L9 [        {
, B9 e3 \7 q% j5 t( P                .active_low = 0,, \6 K5 E. o) V* c& Y% W
                .gpio = DA850_USER_LED0,8 Z! g: w6 B- Q! J, n9 P* r5 F4 D, }
                .name = "user_led0",4 t( I) n+ h$ F& F& T
                .default_trigger = "default-on",
! t* c0 ~4 c$ z- B; m        },1 D& e1 \" G/ D  E
        {
# |( N/ y& L7 L! M3 t                .active_low = 0,
% K- o4 c. T( U; c; D4 B                .gpio = DA850_USER_LED1,- `- g' {! H( c% ^8 K$ D' |
                .name = "user_led1",5 Q# a8 ^/ j8 J4 ~0 @$ o: n; u- `& x
                .default_trigger = "default-on"," }* y9 U4 a+ o
        },7 v2 ?3 Y) a) _* M6 j
        {5 i  D/ K9 L! `9 Z& z
                .active_low = 0,
5 U) F( o( x5 d( U7 p. @% r+ [& Y+ L                .gpio = DA850_USER_LED2,8 c5 |) W0 _% m, K! L
                .name = "user_led2",
9 y) ~' w" L5 v9 m                .default_trigger = "default-on",
) b2 |! a* @# k        },+ i- l: Y3 L5 s+ L1 y4 f6 |; R) r# Z
        {4 d1 _. P; w1 g( d. ^3 X
                .active_low = 0,
0 |& @  J, R! H6 h) d; e! }                .gpio = DA850_USER_LED3,
) S3 n" S/ K4 Z+ v  R. V& _                .name = "user_led3",# ]  L6 j% S* c' b
                .default_trigger = "default-on",
# f, |/ {1 [- h" X+ X) W        },& R  B$ J" E- D7 S4 S
};
+ J1 o# {- C  ^* v5 v' X
  l& M3 V, r9 h# D4 zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! c8 n. [# L' t        .leds = da850_evm_tl_leds,
, ?2 w+ [' f1 j/ w0 I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( d( k$ U3 V, O- N5 R) X
};
! @! ?% d+ B5 I( J
  E" J8 h$ t% h- j3 ~8 Cstatic void led_dev_release(struct device *dev)) P- [8 @. y6 I- P$ T* j
{7 M# b: p6 Q1 z$ v  \" N3 Y
};
  B, j5 ~2 W- G: ^8 p/ e! o! |2 U4 u8 u9 n1 e3 m4 a
static struct platform_device da850_evm_tl_leds_device = {  [: r) C- S8 K  T: b  |* Y
        .name                = "leds-gpio",' @; h4 V. ?/ y: P1 H
        .id                = 1,
/ K+ Y2 _# q, }        .dev = {
7 V+ b9 P- P2 h; i5 b4 n                .platform_data = &da850_evm_tl_leds_pdata,
( G& \; I  N8 R- ?                .release = led_dev_release,
% @4 d4 P# p) d! W' V' q  e        }
4 q* Z6 n3 q* H6 m0 C! i+ n; @};
( ^$ p+ ?* M: z  p: k6 @8 O, g: ?7 p
static int __init led_platform_init(void)
4 M7 x, y  B- t& |' G" v{2 ?( `- C! q( p' q! i
        int ret;
, q8 E) `- t3 ~#if 0# [9 H" O: V  Z/ \" a8 J
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, k# j! f$ E: l3 o        if (ret)( Y- C5 a& U) m; a  N, R* Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: i6 h" }1 E2 @3 t                                "%d\n", ret);
& D6 ]3 _3 V7 z. L+ G& ^#endif3 k% h+ X* j# T/ ]0 V" v( z* ^1 f
        ret = platform_device_register(&da850_evm_tl_leds_device);. ]. r8 M. e" G4 |/ q
        if (ret)
. p+ \  Q; x' U9 A- F                pr_warning("Could not register som GPIO expander LEDS");# X+ Q4 z( U$ a2 t- c
        else7 _3 V. V3 \& [% Z% E2 K
                printk(KERN_INFO "LED register sucessful!\n");7 r! ?" z3 X7 d* e9 u$ y3 e3 ]# [
3 d3 v4 L$ q+ {' a* H* H
        return ret;
' k9 y- U& F1 {( S3 ?2 ?5 J}& x  B, X8 _# Z; Q/ E$ H6 U
7 e9 I* ~7 a& i& k$ i
static void __exit led_platform_exit(void)
$ e9 a* c* U0 G4 \{
% U$ F6 S/ K2 c# z( C# a; Y% F5 @        platform_device_unregister(&da850_evm_tl_leds_device);
- W4 R9 a2 F, U+ j' P
! ^. w" _  @1 T1 p: {        printk(KERN_INFO "LED unregister!\n");% G$ Y5 x0 |, G8 r9 b
}4 }' l; \8 U, ?1 u: m
% |4 `5 n7 `. T6 @# h
module_init(led_platform_init);
) m8 t6 c2 z3 U! emodule_exit(led_platform_exit);  L0 u9 U( m) D7 w1 O
. E/ a0 s, |8 [2 z/ H  ]5 z
MODULE_DESCRIPTION("Led platform driver");. d6 g  d4 e: J& n  ]) M9 I& z
MODULE_AUTHOR("Tronlong");
  s+ w: w4 p5 J; D& IMODULE_LICENSE("GPL");* I4 f1 `! s! E: L8 y3 _. z1 i/ X
0 S. v0 f4 C9 J$ O6 ]! M% e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-11 16:16 , Processed in 0.038919 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表