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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 x) \7 p& i; W# g6 I& F2 J! z2 _
#include <linux/init.h>, Y+ X% r/ a; E3 u# O
#include <linux/module.h>+ J0 r% ?" S5 [
#include <linux/kernel.h>) M+ a8 g) W2 \6 v5 x5 _
#include <linux/types.h>
6 D$ U( l: z' i. v* @" N#include <linux/gpio.h>
( B5 E/ Q% I& D+ A#include <linux/leds.h>
- j& L- X; Y4 x1 _  E#include <linux/platform_device.h>: v& Q- S/ P4 U0 D

. K9 U6 r: {: C8 t6 J% z9 n2 y#include <asm/mach-types.h>
1 P0 x0 r5 w  V& I# |6 R#include <asm/mach/arch.h>9 W$ u+ q! Q. J) |0 K
#include <mach/da8xx.h>
8 x) L5 `! t) Y; s% c4 ]- v#include <mach/mux.h>
& n" Z% j% G$ D. a* r* P. |* t7 T* }. Q0 w- x/ R
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)4 K9 k1 u+ \* D$ d3 M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  v3 C; o! Q% p' N  `# v4 L
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 {$ k! o- u: ^& M4 e7 U
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# \5 I' `  B2 g6 ~! P# W
: u6 [9 K% x0 i5 _( U/* assign the tl som board LED-GPIOs*/
- a6 u: C: F! M0 o/ Zstatic const short da850_evm_tl_user_led_pins[] = {
0 c# k: R) s, C6 O, z        /* These pins are definition at <mach/mux.h> file */
" L* W9 H9 \$ O* Z/ z' B$ s* a; {5 _        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& s! Y% N& [* x0 v4 K  B
        -1
5 ^# s6 I+ ^7 Y3 |+ \};% v5 [& ]9 K) U/ r5 K

& o) K1 @0 S2 T. z" O) D  d9 `static struct gpio_led da850_evm_tl_leds[] = {
8 h( t  [7 P  n- y' s: {! v        {9 o1 a: r7 y8 D8 g
                .active_low = 0,$ ?. f- }- k6 t' G
                .gpio = DA850_USER_LED0,
1 H' Y8 B4 `- p# A) A                .name = "user_led0",
1 K( m: G: U0 A) K% Z& q+ L' B                .default_trigger = "default-on",
- O6 M! U& H0 ^) l2 `$ a        },
7 G3 ~4 \/ [6 e1 v- r        {
( t# K0 ]; F. Q" ]& I5 U                .active_low = 0,) R: Y! m- G) M6 L4 a$ p3 L/ g
                .gpio = DA850_USER_LED1,( ^) G1 f; e) A( U1 v: y! s7 |  ~
                .name = "user_led1",
- r. W4 s$ ^+ a; X                .default_trigger = "default-on",  X, a- n! N! }- Z
        },+ P7 |9 Q! a; `$ v5 S6 J( ~
        {  ?. ?) S9 y! f
                .active_low = 0," y4 D' i. r* _8 a& [
                .gpio = DA850_USER_LED2,# I5 `# ^0 l1 ^) X- N8 q$ m: S
                .name = "user_led2",
0 _/ {' ~6 L* u' ~' D                .default_trigger = "default-on",  y& u7 T# ?5 n: q: n( m
        },
: U4 t8 ^3 u  A9 r4 [; U; c        {" k+ f' |5 |2 w5 f. d
                .active_low = 0,
' E, q) n/ ~. U7 B" T4 d( c& v                .gpio = DA850_USER_LED3,) {2 q/ g! b: V: J( s
                .name = "user_led3",3 Z& D1 |; o. E3 [- M/ c
                .default_trigger = "default-on",
: z* v3 v8 N9 e! k0 L3 ~7 I5 G7 c8 p        },
- p+ c$ x# G5 ]4 s4 u3 e};
. {% k6 i. d' U; k' M6 `8 u$ T% m
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 C( l2 }5 K; q6 c        .leds = da850_evm_tl_leds," l1 Z* j) i- N, x
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  N) k4 P! \  E* c6 d};
1 M: O" R" _2 A. b# K, y
, a1 i; |7 X! b& g0 g5 e# }static void led_dev_release(struct device *dev)
! ]0 b# d! S0 l4 ^{
. Y1 V8 {& z! D) @9 a8 k};$ X1 v# F3 A' q$ x. b
% {! {( @( K2 b3 X* n. d
static struct platform_device da850_evm_tl_leds_device = {5 ~; I( f& ~& p: \
        .name                = "leds-gpio",
  m* e7 A2 U- @# f        .id                = 1,
: U4 x. K: n2 W        .dev = {9 Z5 ^% ]& G9 K& t0 `  y1 i7 H
                .platform_data = &da850_evm_tl_leds_pdata,
* |2 M; m0 H+ f' t8 G; T                .release = led_dev_release,; b- k2 _; A$ g
        }8 J6 j% ]. y% x% X
};, Y; e3 U% r% Q) j

7 A% L% H: S: @# T3 U* w; qstatic int __init led_platform_init(void)  d2 l7 P" |7 ]! x! V
{/ D4 T* G: s% Y/ W' C8 K
        int ret;) e- d3 E) T9 k, S6 O6 W# w" u+ ~
#if 0' P9 J! n, Y6 @( e8 a" s# B
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 z( q& [7 u0 m
        if (ret)9 t5 ]  S/ d2 ?1 [- b& z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 m3 i! G; L; `7 J" v0 ~: j* M                                "%d\n", ret);8 F5 y7 |: |2 I% M9 E
#endif' W: v, |4 s% u. B. d
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 \/ s. ^8 d! C* `, T        if (ret)5 W& K" q' q- n& j
                pr_warning("Could not register som GPIO expander LEDS");
7 \8 i* @: f% h1 G% I. Z        else  E$ e, t2 u0 p% `
                printk(KERN_INFO "LED register sucessful!\n");
% R' F# X2 p% m  B2 X7 u
& o/ j$ h+ \( w1 u0 ]$ `        return ret;
0 J# G2 d) c& S. j, g}) h% ]4 C! ~$ \7 f2 x. Z
. \8 k# q. z  v& H) A/ o
static void __exit led_platform_exit(void)
( ]7 R$ ?6 B3 N' g! S4 |3 a{- Y; Q! @/ L# t* Z
        platform_device_unregister(&da850_evm_tl_leds_device);! O7 o+ \; Y( H; w* n2 N9 @( \- S# f
; k' n  g/ f3 j0 ~2 t
        printk(KERN_INFO "LED unregister!\n");
6 v; M0 V. b8 v) _. X* T" S$ s}
5 |/ V4 }1 [' E: a
: h* Q  O& m, \/ m  m- }+ B* nmodule_init(led_platform_init);
; e* U- e2 A  Umodule_exit(led_platform_exit);
( g0 X  Q7 ?; I  R, L& G7 a8 X( R' p; y4 L0 z
MODULE_DESCRIPTION("Led platform driver");7 q8 U$ S/ S# v# _9 P$ X+ u
MODULE_AUTHOR("Tronlong");* F: s5 L1 D. m2 E, u7 p& A: y
MODULE_LICENSE("GPL");2 h. T& Q& [6 u8 L: U

  f% R9 R0 c/ d" F" A* q; {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 15:22 , Processed in 0.038481 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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