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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 [8 R% Y# P3 H7 P7 B0 q#include <linux/init.h>
; u4 X6 e0 G% ?#include <linux/module.h>" {7 \  C! s8 V( ?- d9 U: h
#include <linux/kernel.h>! E# n. U7 z9 m, b
#include <linux/types.h>' Y, X8 w$ @' z! i# Q- \
#include <linux/gpio.h>: U$ W7 R4 t+ I6 h7 C' f  Z
#include <linux/leds.h>
* M+ C( O7 ~$ o, m) v& s" y& O* {#include <linux/platform_device.h>( k/ A3 m- A+ i8 ]2 E0 }3 n0 n7 [

  L) \' |2 g; h#include <asm/mach-types.h>1 e8 X: L6 \& B" y9 g& d
#include <asm/mach/arch.h>
, i* ~( w9 Q  i/ R( j& q# m#include <mach/da8xx.h>1 T$ f' E4 o  ~  _" j
#include <mach/mux.h>
7 Z* ], p$ D7 V1 _9 s8 f  M
3 B: h+ t  N& d+ H" R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 j9 }8 t! J3 p( y2 `
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ Q# S( b9 Z3 Y5 f- G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 F- |% o# j; |6 T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 F3 {6 M/ ]$ `( B$ W
& F9 c7 H4 y8 z. z: e1 J
/* assign the tl som board LED-GPIOs*/
6 B' S! O) g2 `& Bstatic const short da850_evm_tl_user_led_pins[] = {
; A/ v, y2 G0 f: c# g$ R9 j% ?0 z; T9 {7 l        /* These pins are definition at <mach/mux.h> file */' b; D; j8 A1 C8 n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& z  ]  a; q9 b        -1% i! J% n1 A& B" ~! D) N& v, `
};0 e! Z; b- U& G$ w
6 a5 |) O2 _/ ^3 }
static struct gpio_led da850_evm_tl_leds[] = {8 w4 L$ c) P! {  _# i/ y1 y% ^
        {, _1 x) K# ?) k: F/ O
                .active_low = 0,# D: h  N) s* e0 w& J! D/ z  l
                .gpio = DA850_USER_LED0,
$ W" t, x3 L* W8 j1 p7 _" h                .name = "user_led0",
. r5 a5 E; P. R: N0 o* p                .default_trigger = "default-on",
7 |" {8 H, ?2 T0 M8 |3 O  m/ v+ o        },
( |) C/ N( `2 r4 W$ ~! H- K        {
0 G( e1 }# C4 j1 I# a7 u) E" c                .active_low = 0,
- f9 k3 y' l& \0 r* V5 o& W                .gpio = DA850_USER_LED1,
7 p: B" d  O2 m- |* a5 E; u                .name = "user_led1",
& v: H7 }- {- U/ }0 v+ @: Y! b7 F; l                .default_trigger = "default-on",
, Y, B% e8 [1 ?4 T$ f$ Y        },
7 C5 F6 k* l5 D. J$ d0 }        {
4 H: T) [& c. G. M9 Z                .active_low = 0,
5 c! f: b& j2 m" B* c9 ^. y                .gpio = DA850_USER_LED2,0 ~. M' h2 x( n3 a) h! c' q0 @- j) U
                .name = "user_led2",
: G9 ~2 Y0 P; g: [0 v5 E8 ^                .default_trigger = "default-on",
. J) S' y* {2 Z/ A4 \4 ^; X2 O        },
2 p$ `% y/ ?/ l. h        {
3 O9 S9 y1 k: p, w* h$ j                .active_low = 0,! x# O  G- P: y* R3 q
                .gpio = DA850_USER_LED3,
6 A9 P9 G7 \. w; |/ [                .name = "user_led3",% E& h: ]' o" d  ]
                .default_trigger = "default-on",8 L% t. U. L1 S' ~& M
        },
( W. V$ x, q  v% j0 p2 O};/ U1 B& R3 ?( o
: l  }; `+ G1 L  T# ~# z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# o+ R) F( G7 g: L2 n# e        .leds = da850_evm_tl_leds,3 A. O8 E# @. o* _+ S
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  d4 j  L: ], s% a. {};
& E3 s  q# S' Q$ S$ I# K2 T5 ?! l7 V5 r4 _) S
static void led_dev_release(struct device *dev)- F9 d& b; |2 I% _' a, ]7 ?
{
; w8 X; p! L) a};  r! y6 o6 v& h/ t% v
, g5 h5 W2 D3 v% D6 O! ~- z
static struct platform_device da850_evm_tl_leds_device = {0 g2 g3 C1 }+ {+ D2 H
        .name                = "leds-gpio",
2 ^0 t& v' K) i9 m        .id                = 1,
% L$ y' \4 y* V. m8 v6 z: {& I        .dev = {
) l0 o; m2 B, W* a                .platform_data = &da850_evm_tl_leds_pdata,
8 O, ^, P* y: }* L                .release = led_dev_release,! b# e. Y' Q5 a/ q% R3 @# J1 B0 i
        }: t2 {0 n2 d& J" m: Q$ n
};4 {" R  F/ N7 V; n1 o+ ]

+ j3 E3 \7 a; D9 U% {0 ?* r: dstatic int __init led_platform_init(void)3 e4 Y: H" O* d1 n) j, ^" P
{
9 z* u8 B& k+ @' n2 C        int ret;
3 n, y/ j/ P* v8 }8 R#if 01 m$ o( k) {3 Y* x9 b9 i* v. _) r( f% q/ H
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 F( h2 `/ P, g# A: v8 d0 f; ?
        if (ret)! c- x) F2 C; V5 h4 s. M8 m
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ S8 F$ s' e: o* l: }( v$ C1 {                                "%d\n", ret);0 {1 N% a1 b* G* Z
#endif9 ~6 e. Q9 ?; y3 X1 n5 M
        ret = platform_device_register(&da850_evm_tl_leds_device);
) [- D: |: j! r        if (ret)
3 E% b  B: I6 e. o+ K; H( V                pr_warning("Could not register som GPIO expander LEDS");
! p1 ?" ?( k/ Q  A        else
- x% C3 V3 z9 j8 [% J7 g& T+ u                printk(KERN_INFO "LED register sucessful!\n");) R1 H( y1 l7 R9 p- \* v
7 ~5 i# h( ~# H- v- F( l7 C
        return ret;
" h' n2 O' u9 }4 D; Q$ v, |7 _}  v0 w, C7 I7 |/ a1 e# h
2 Q0 O3 H5 s# k0 x% `
static void __exit led_platform_exit(void)
% r( U3 z$ f& _, [0 D{$ k% P, w: L! j! y! g9 B' Z+ _
        platform_device_unregister(&da850_evm_tl_leds_device);
! c  y5 h6 |7 C/ B+ d& Z% @' O7 Y2 b: U1 H
        printk(KERN_INFO "LED unregister!\n");1 k- s. g! }& I" ?1 |0 k( ]
}
5 T/ k. s& w( |4 k, X& |! e' w0 ~; {1 l1 _3 n# S5 Y8 F
module_init(led_platform_init);- b* ~% V7 `' Q6 S: M* R/ L& f9 a
module_exit(led_platform_exit);
2 X8 E) u& z: L( ~. v9 ?( w6 F  a; b! s. ], `' U# U
MODULE_DESCRIPTION("Led platform driver");/ @6 f1 ^5 h- X3 d
MODULE_AUTHOR("Tronlong");8 U) e* A2 b% N# s  x* e+ O
MODULE_LICENSE("GPL");. p( h4 c  V$ M8 f

: ?, Q& a, ?0 O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-21 15:55 , Processed in 0.040040 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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