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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' V( E) z: U' ~7 i4 j. W#include <linux/init.h># t/ i0 t& O2 @4 {; i
#include <linux/module.h>+ j: C; V& j* W  k
#include <linux/kernel.h>) w9 R- e% L) B5 i" i+ |: m
#include <linux/types.h>
# I& N" v* y9 R4 M3 ]" S9 }7 s  X#include <linux/gpio.h>9 @4 D' ^% b8 w6 j% Z7 J
#include <linux/leds.h>
( h6 m3 F! y& L' k0 T: z3 E0 ^#include <linux/platform_device.h>9 C% l& B4 Q, I8 b" G
: M8 U$ M0 L) G4 I. R; r
#include <asm/mach-types.h>
& f( D, z( n$ k6 f3 V) A+ j#include <asm/mach/arch.h>
4 B- O6 W3 `2 r: b9 a, n% U  m#include <mach/da8xx.h>& s: X; ^. f/ N9 |% }, e
#include <mach/mux.h>
8 W4 L% U! ?% u7 C7 p# ?( U2 U5 k- v
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 ~3 b5 x! w& L! n- A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 E. L! w/ J) V7 z% S# Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 X) s. W% {6 H( J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, g/ h, a7 D* F4 x; a1 n7 K1 T
7 U% s% J7 N, j1 F# q. H) r/* assign the tl som board LED-GPIOs*/  H. H: C/ h3 w8 f
static const short da850_evm_tl_user_led_pins[] = {
, ]9 f# D* @1 U4 U5 _5 {- X. ^: O; O        /* These pins are definition at <mach/mux.h> file */& T7 n- W$ q4 R3 F! I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 u8 O. D+ W5 a- J  ^        -14 P  I  ], S+ ^9 m  o! U3 x  j
};6 N& Z9 C6 L* p* S' T# @2 f
% C: u; V1 ?' u- F4 G$ B
static struct gpio_led da850_evm_tl_leds[] = {
; f( v" q, D0 ]% V4 R( d/ ~        {
) P: z' V1 P5 F" u  B0 B* x# L4 g                .active_low = 0,$ t! C1 E8 @7 z
                .gpio = DA850_USER_LED0,
% }% s2 O: s0 p0 o                .name = "user_led0",0 P5 ~' c+ [% ?
                .default_trigger = "default-on",
) c4 @& G% c+ o2 u3 H        },
  n! `0 ?& n" P$ k9 h0 h        {
. M9 p/ f& [- G% }2 i                .active_low = 0,
; `1 ]) ?7 b; h9 J% H                .gpio = DA850_USER_LED1,4 y4 y' V. u; c: I1 P0 I1 X9 N% n
                .name = "user_led1",7 X, x, V! x% T5 W) d% ]. E
                .default_trigger = "default-on",
& t; R) [5 F  V  n1 ?' d        },% A; z: ?9 K2 Z7 k: b) v9 i
        {
% z2 j, j; k, g5 c! c" t                .active_low = 0,) F% V5 j( B- {1 _! F- O
                .gpio = DA850_USER_LED2,
1 E: N! B$ ^2 L( N) q                .name = "user_led2",8 i" F- ~4 m" r
                .default_trigger = "default-on",$ ?+ E+ Y1 K) K" H# r' A, Z6 [
        },
% ^( m) o0 @/ E; ?  h7 y! a  m  R, S        {
1 w! \5 X7 a8 h+ f' W: g- i                .active_low = 0,
' c* r% K1 m' p) w9 R; e# y- R  C                .gpio = DA850_USER_LED3,0 J4 a6 i) I1 e# [( L% d
                .name = "user_led3",. p0 X# a2 q9 J. x% O
                .default_trigger = "default-on",  ?9 U# Z+ d9 b2 }% y% t, {; I% t
        },
4 B, c7 I/ g2 W, `9 ^};0 W0 T0 [. ?/ D
6 a% Q9 x/ `' c* T1 V5 o0 v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 b0 U& @- Z% Y4 _4 `- P8 q
        .leds = da850_evm_tl_leds,
! y  G! j0 E2 i0 u4 h9 T1 z& Q6 x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  b& S  y# }  h3 d* C% ^2 p& P
};
0 q7 u" {2 x' n* h+ s+ {- k& I/ }5 B- e( n- r! Z' t* k; @8 r; Q
static void led_dev_release(struct device *dev)) [# B) N& I, J! V; i  L( {0 R; n
{# \" e  E2 c& |! K% a
};% ~' y  s$ U( c- p* @+ y% `& \2 }
0 @7 ?# D, Q& O7 X
static struct platform_device da850_evm_tl_leds_device = {
. }9 L" C; H: x: n1 n& J. @, n        .name                = "leds-gpio",
, u; y4 i( F) n+ j2 o( [3 n9 d2 g! p        .id                = 1,
- A0 a2 U  {' h' H9 j" @        .dev = {
/ L) |6 W5 @! z1 D5 V                .platform_data = &da850_evm_tl_leds_pdata,# y: X1 E8 @; D' a4 d
                .release = led_dev_release,
, s0 r% f- K. n1 R        }  ~+ w* \( d7 C$ a& Q
};5 ?, \" z6 t; ^. E" J6 \% x

8 P; ?6 Y- a4 C, O! L& ?  [static int __init led_platform_init(void)# j' b/ G& K" ?3 ~8 l1 D: i1 A
{
/ z. I! R- T8 A  O( J; d& @. ^        int ret;$ k# s4 i+ M* T# \
#if 0( g: x2 M1 ?. _; a( [
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, X* [! D4 b* y2 S; X+ _4 O
        if (ret)
' P; I* j1 w7 H. J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ l6 ]6 ]9 d) A" M+ P$ ^% R                                "%d\n", ret);+ Z+ G0 A. `; J' |
#endif8 V# v, S  p% V  Z3 F
        ret = platform_device_register(&da850_evm_tl_leds_device);8 Q' y& D* H# v' e7 j1 a3 J$ C7 D
        if (ret)' Z# U+ W9 q( t8 S/ n( ?, m2 B. o  S% K
                pr_warning("Could not register som GPIO expander LEDS");  Q  V6 ~4 V# a( Q
        else2 G: ]: j9 J* n  d
                printk(KERN_INFO "LED register sucessful!\n");! B  g; f4 R/ q# @6 m
8 N, n) s9 _: i6 M4 m/ b! @) h/ Z
        return ret;
  v% ^- ]$ {/ T* m8 p  l}
/ g( A3 Z* c: i2 X. g7 I3 P
7 i% K" j1 N( k+ {' G3 Y; ]static void __exit led_platform_exit(void); o7 f9 S: x0 E# a$ v% y
{3 L+ V1 U# \$ M' p
        platform_device_unregister(&da850_evm_tl_leds_device);' I, S. S/ ^' v
) U1 X  }& L9 V; k
        printk(KERN_INFO "LED unregister!\n");' f; g' Y; E/ C) ~5 ]: ?' M
}" f+ Z4 |# I  `! }' \  P

: d3 r* s1 Z8 g( B2 F- f  d; {5 e" _module_init(led_platform_init);
/ L* ]1 J' U0 l0 c1 T& Vmodule_exit(led_platform_exit);
! {( Z0 K1 H+ S0 [2 D2 r* P% c) Y  y! x, n( W$ Z
MODULE_DESCRIPTION("Led platform driver");
# D" g  v+ |5 u1 x/ CMODULE_AUTHOR("Tronlong");
& u! b# S+ h; O% L2 ]MODULE_LICENSE("GPL");
7 d, [3 V2 M& B
4 W2 t' @0 a( ]3 C, n7 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 21:24 , Processed in 0.040539 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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