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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; F9 e  ^8 K, F- _3 R6 P5 d
#include <linux/init.h>: F6 g2 y: |1 R, h; z7 ^( G7 i
#include <linux/module.h>
# W/ J7 v/ H" z8 c4 A1 ?. ~#include <linux/kernel.h>
" s; x8 @: N. _#include <linux/types.h>1 u/ a  \. {- ]$ ^+ `- H8 Q
#include <linux/gpio.h>
% J# j9 S# q$ C1 Y: l) P#include <linux/leds.h>
6 w) n2 R' E5 N" N0 X#include <linux/platform_device.h>
  D- h6 v. U! l9 U' u2 J3 y6 F- _  g# C# O  s/ p
#include <asm/mach-types.h>
1 W5 W0 e% d0 u1 s5 o9 E9 t; y1 j#include <asm/mach/arch.h>
# j; @0 Y+ p& }2 o- X3 E#include <mach/da8xx.h># z; O: k+ Q* }7 s9 `# @, B
#include <mach/mux.h>* A: j3 Y0 {1 p5 I% P

  w( m  h" t% ^+ c# J- {#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 C/ t' }' G# q* n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# O  d! a; r$ X+ \9 E2 l& Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ W6 `0 a7 C( @9 i' a+ c: l( q/ J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 A! _* m0 F, ?; ~* J, k7 u0 P
) B* a. ~3 C8 \/* assign the tl som board LED-GPIOs*/4 g5 Z3 q. y; e2 [8 W
static const short da850_evm_tl_user_led_pins[] = {
4 Z( {, c( W1 o% r4 J        /* These pins are definition at <mach/mux.h> file */
3 h( y: |4 G3 U        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 J3 Y# q  Q5 b% P, e
        -1- |/ G; y! h& N1 }! v; q" J
};
8 m( @" M: N3 ^6 \) B/ r$ e8 k. Y" E8 A7 w- E* I+ z
static struct gpio_led da850_evm_tl_leds[] = {
* d9 S' _4 t: O; r) M        {& X: l- r9 i; c/ O
                .active_low = 0,3 D4 M6 F% T$ m8 n2 G
                .gpio = DA850_USER_LED0,+ }% s0 t2 j$ v2 q" d
                .name = "user_led0",
; l' A4 P5 ]' ]# Z1 `                .default_trigger = "default-on",
- F7 k( T9 b( r; W. }8 c        },
0 @- ]/ L& o; U6 L! c        {
# C: K4 Q5 s5 G- D4 d, T8 _+ \                .active_low = 0,7 t. B% l, ^) j6 U4 A4 E% `! f
                .gpio = DA850_USER_LED1,$ F) g3 Z7 ]3 [, ^, k
                .name = "user_led1",9 W! C, \6 H6 c$ ^5 o
                .default_trigger = "default-on",
& Y; i7 O# ^: D6 c: j' k, i        },
, h$ G2 l8 s* q. U! c1 D" Z        {
3 w; g1 m8 T: D2 a8 m  k5 l3 w+ i                .active_low = 0,1 S* T1 O) S1 f: ]5 j0 G
                .gpio = DA850_USER_LED2,
1 Y  E3 }# B6 L/ A/ n                .name = "user_led2",
; D7 r5 D2 T3 J6 O* G6 N" M8 [. Z+ m& O                .default_trigger = "default-on",
" y6 b& I/ L( }        },
0 S. I& |# H5 M% U$ _1 G        {/ F7 t8 V/ S2 j- j5 h/ e! K9 I
                .active_low = 0,
" ]4 n$ _% M1 h' E                .gpio = DA850_USER_LED3,
3 @5 t/ }* ^: Y8 I8 D$ X                .name = "user_led3",
; j- k; S* P  o6 A                .default_trigger = "default-on",8 p! j0 m, i+ X
        },
0 q; I& b$ H" M( X% b: r};
+ [  J8 Q2 d: }4 ~) c- F8 b0 \2 b/ v3 O/ v1 ?  P
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( r+ d5 f  ~" V% X        .leds = da850_evm_tl_leds,* o$ \( i# w- x" o1 K$ a
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 m1 j* L( H. w% _2 ~  I2 |) V  n};5 @- E, @" I! c+ i0 \

3 S# X/ j0 V8 p0 ~# o9 mstatic void led_dev_release(struct device *dev)
# H( K3 }4 W8 p! U7 E: \{
& A4 o& @; _* h0 b8 s3 T) s};: v6 O- `/ s) m1 T3 `8 I9 D
0 R0 [) g' O# K! i/ B, m
static struct platform_device da850_evm_tl_leds_device = {
" ^4 T6 \4 Z  c) I- l/ v4 X+ ]* k8 Q        .name                = "leds-gpio",
9 K! z; `+ `+ O, W3 B& Q        .id                = 1,
: e9 P! }) w) w& u) o0 U! e        .dev = {4 ?' O/ T8 ?! x: |
                .platform_data = &da850_evm_tl_leds_pdata,
( O4 q- w0 W/ O                .release = led_dev_release,' h: F8 Z" L% v" Q& u2 n- x% W! J
        }+ b. ?" Z3 g! i" B# p/ ?
};- h7 m" o. b+ C) v6 }

; [' n0 a4 H9 Istatic int __init led_platform_init(void)( ~  g8 K9 K; n! V1 u' m
{, L9 ^, O( k* k' J
        int ret;' I) B& e1 k6 j& \1 U
#if 0" G  z3 Z) v8 h2 J
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ ^% c6 A5 n) B: d: l2 i  I        if (ret)
. M/ E* O! J" a) F/ c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# O  T- V* b8 |4 V- h7 R9 D
                                "%d\n", ret);* q$ {  L% G3 s6 L, Q7 A
#endif: a2 r3 V6 T) M7 K! Y
        ret = platform_device_register(&da850_evm_tl_leds_device);
* \! s. P" ~2 C. m% ^4 C# S0 p        if (ret)4 h5 L9 p4 a, z  c7 _
                pr_warning("Could not register som GPIO expander LEDS");3 h! q) h8 O* w1 g# O* v
        else; e+ @- J/ f9 i& {9 t
                printk(KERN_INFO "LED register sucessful!\n");! u. x/ d- {  j3 o7 w1 i
, L& L" o  G) v# |5 Q
        return ret;2 t) r4 i. D" \$ e1 J2 K
}$ U3 x9 n" V% Q8 k; J
$ o  z- f, |/ u. s' y* m; T
static void __exit led_platform_exit(void)5 j# ]+ k# s7 Q+ c
{+ ~  j) d) i5 x# y
        platform_device_unregister(&da850_evm_tl_leds_device);
) G5 [. V$ Z$ O+ @4 ]0 t! H& T, ?
  h% Y9 o( S& n0 j  o        printk(KERN_INFO "LED unregister!\n");9 Y4 `( ~8 Y! X8 N
}6 l5 L- j/ E8 @4 G# V; B; z8 C

3 E# k' s. t9 {: qmodule_init(led_platform_init);
& j% ^9 z, j! y- M! j7 E8 {# Vmodule_exit(led_platform_exit);
1 S5 ^' I& Y$ I; _/ J
) h" w; k: H9 }0 z; BMODULE_DESCRIPTION("Led platform driver");
+ b: X6 |6 |3 N% u& ?' t4 fMODULE_AUTHOR("Tronlong");4 e  X5 E$ V+ V5 m/ Z6 N& @
MODULE_LICENSE("GPL");4 {2 B7 M# S, g, O6 D6 R

/ G4 T  w, v4 d' i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-8 09:34 , Processed in 0.037344 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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