程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" G  m( D/ ~3 i* n3 u) B  z#include <linux/init.h>  R9 s6 v1 e& p+ k1 ?! d$ \
#include <linux/module.h>
& \% G2 D! ^4 K" |% D#include <linux/kernel.h>/ N: M5 E; t5 o( h
#include <linux/types.h>
, b1 v/ y% E9 x$ \1 @7 V#include <linux/gpio.h>
) \4 @5 F7 \" j#include <linux/leds.h>) l4 R+ b% B, ~4 l% m. O& g
#include <linux/platform_device.h>
2 ?( W8 K9 S- y) |$ T/ p: C- V' `) p
#include <asm/mach-types.h>. H0 t5 |5 L: U0 C
#include <asm/mach/arch.h>
  V9 y" {4 e3 L9 N; F* c7 o#include <mach/da8xx.h>
  s. H  X4 j" `- z* C$ K#include <mach/mux.h>% d" S2 a; o4 b$ I
* b' N; ~4 Y  A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ |2 e: O) w/ ~7 M5 |8 M#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 K: D6 O/ a% b8 ^#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" ]6 Y, R/ c* J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; Q8 M) W% X5 s4 m- N
8 {, g# |1 S. p3 u! ~/* assign the tl som board LED-GPIOs*/
" ?: `' o2 R' o3 ]& K* sstatic const short da850_evm_tl_user_led_pins[] = {
" Y, q" U7 P7 K# F0 l- q        /* These pins are definition at <mach/mux.h> file */+ _+ m: a4 }3 i  Y# Z9 p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& W% e& `. E9 k( G! r9 O
        -1
. G: ?5 J/ f& R9 G8 H4 m};
5 m* q) O% U$ x$ F; W
3 o( z9 W- N+ x! X! ostatic struct gpio_led da850_evm_tl_leds[] = {3 J+ |. a1 ?! `& d: ]4 v& r
        {
9 q: O% {: P* X                .active_low = 0,
/ n8 Q9 ]7 v9 d4 D  ^                .gpio = DA850_USER_LED0,
* Z! n" ^3 H6 F. S% [                .name = "user_led0",, G3 _3 ~( u6 X' R
                .default_trigger = "default-on",6 ~; T. `* J9 v5 J" z
        },. B0 d; [( @  g2 s
        {/ v  V( S0 i3 H! m/ f/ F- A" L$ p
                .active_low = 0,
) T/ X/ T3 a$ w0 Y& T; P                .gpio = DA850_USER_LED1,
$ q1 {( _! B( e7 K5 w2 b: y                .name = "user_led1",
0 ?7 u8 b; ^2 J: @9 z                .default_trigger = "default-on",9 Q3 Z3 a" a( U# j9 [; R6 V( S
        },
% A8 K! z0 E8 k# R) j1 B. q- N$ H& {        {
% f) c4 E# r$ {0 @3 {  U                .active_low = 0,
4 M2 z" \3 W' D& m                .gpio = DA850_USER_LED2,
- I. f# N" q& c  b2 k0 }+ y9 W; i                .name = "user_led2",0 h$ h* R/ @( F8 C! h% s
                .default_trigger = "default-on",% y3 U5 z; A6 i5 d+ B
        },
6 B0 r2 t6 }% {  Z3 F. D        {+ t. U1 j& d. p. m2 L1 J
                .active_low = 0,
5 D# m8 d, |8 F                .gpio = DA850_USER_LED3,- c6 f+ U+ }% Q' A; E- l# B2 I
                .name = "user_led3",
  W/ x6 M6 [" J: i! @  Y                .default_trigger = "default-on",
% ^' y+ e8 ~+ C: E8 }  V9 P7 E        },& F. v; i, v$ @, D8 D! w/ C
};4 M9 E6 g8 v: K

0 W& X; X. H" \8 c6 E+ G6 Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& G( ]" [- t4 V' s% f# o
        .leds = da850_evm_tl_leds,
& V* d9 V! l7 ~- i$ {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ z- G# Y: p- ^; }$ V% L};
6 Z: {+ x! ], C! `: M" G' C1 b* J+ M
static void led_dev_release(struct device *dev)
; i9 U6 z( |% M% b; p: D{
/ k, \/ ^9 Y  V& X; `1 |0 B; M};" L2 d9 p/ o6 S: {; M) t* r/ @

/ M7 u4 ~0 {) E' h" istatic struct platform_device da850_evm_tl_leds_device = {% J) F" E+ H, N
        .name                = "leds-gpio",# R! w% R* L, J4 P4 R
        .id                = 1,
# ], X7 W7 E0 Q7 }5 q/ Z- L        .dev = {
: h2 U4 d' T8 M# [8 Z                .platform_data = &da850_evm_tl_leds_pdata,
+ c1 _2 p) H) H: m+ u5 t( b                .release = led_dev_release,
: x# e4 T. U& ]9 M2 F' P7 S* r        }
9 n0 {1 y: t, \4 J};
1 w2 e& j  M+ y& O, t
' A' G  h& }# istatic int __init led_platform_init(void)4 R2 U& `( c0 ~
{
, U1 T* V1 Y2 @9 |        int ret;8 t0 H1 O# s, q
#if 0
5 Z9 a$ I. Z6 ~9 H3 Y# p  @# f7 U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" r! S7 p2 s5 l) ^6 R. `
        if (ret)
  ?* x% I0 W7 s; K. n) s( x                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  H2 ~& S- v" K) I' {                                "%d\n", ret);
2 ~  b) B% |' s  I# T6 {#endif
- @0 L$ T8 r. A' f        ret = platform_device_register(&da850_evm_tl_leds_device);8 _4 r  T: Q/ R0 S0 v  ~
        if (ret)8 I4 K  Y, s$ n! W  B% V
                pr_warning("Could not register som GPIO expander LEDS");( [9 y5 r" D0 r1 r6 ?
        else
, h% N/ s  t4 @! }  n2 M. N                printk(KERN_INFO "LED register sucessful!\n");/ Y* q3 ^- o! h4 Q( L7 x
$ c5 V7 G7 A( Q6 r. j5 {( y) U0 ?
        return ret;
; [7 z3 D6 Q. ~: B" j- H1 A}" O% ^  P( U& ]) m3 i

. m4 a% k+ E, l  a( s7 T% T" u  Lstatic void __exit led_platform_exit(void)
, I* Z, d1 z8 _( r{
8 m4 U7 r2 u1 D, R0 f        platform_device_unregister(&da850_evm_tl_leds_device);
/ x+ I, C* ?6 Q, r8 O
0 {: X) G" r+ }2 R        printk(KERN_INFO "LED unregister!\n");
! l' k5 q0 d9 }8 V2 F: S}! X' W( F% z& V  ^* D: F
& s5 L/ P1 K$ N" e8 }6 O( h. o
module_init(led_platform_init);
* p/ o! B& _; |$ {, xmodule_exit(led_platform_exit);+ x9 e8 f& _" C& f5 G

+ v7 i- ?0 E6 X, d1 VMODULE_DESCRIPTION("Led platform driver");) r& k  q( |8 Q4 D
MODULE_AUTHOR("Tronlong");7 H5 L% V/ G% m! j: i3 E7 G
MODULE_LICENSE("GPL");
4 r: |& x$ }1 ^; X- c! T+ R6 I/ [/ f7 Y# x. x+ a+ R; u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-23 13:17 , Processed in 0.037795 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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