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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' Q4 A5 ]7 K- I! ~% a0 i$ Y+ Z#include <linux/init.h>% q  a, G8 g/ o) @% Y! r8 q
#include <linux/module.h>
  N+ ^3 o2 n3 ?! t7 U#include <linux/kernel.h>
$ \! s) G8 Z( Q2 ]1 D% p#include <linux/types.h>
7 t) c0 P1 `2 K$ f4 O/ ]: B#include <linux/gpio.h>
& t" w" ^1 ?( s4 \#include <linux/leds.h>* C. @. P4 `; D8 H$ Z, Y  _
#include <linux/platform_device.h>
6 N7 U/ m& k3 r2 J: Q! a* m" g
+ m! d7 T* b% B# `#include <asm/mach-types.h>3 J: }# [+ ]% f- e! y
#include <asm/mach/arch.h>( F, {: u; X* v2 }" ^( b
#include <mach/da8xx.h>* I) c" v& p4 i' k7 T( b
#include <mach/mux.h>9 i8 s' R1 ]6 @

( g, T! y1 c* M* u' Y9 S& t5 A#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 ?' W4 M- l. w4 J8 i3 N2 y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 @! {0 n( A. n9 e
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 ^8 ]+ n  f; f% V#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 w- E, L; k  d2 _
3 A; O* Y$ H4 R" _# j/* assign the tl som board LED-GPIOs*/
. |6 P% o' M+ o- ~; [4 Rstatic const short da850_evm_tl_user_led_pins[] = {
: j3 G% @0 u; r+ X5 S; _        /* These pins are definition at <mach/mux.h> file */
5 p: J5 O& B) c! W" F; _$ f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ E( W6 g6 P$ o1 O& v  C) B- W+ l. g        -1
7 X% K. I$ ^% @5 d};
9 Q% A" D- a% A: F/ C2 H8 ?0 S$ C1 L! `% f# t
static struct gpio_led da850_evm_tl_leds[] = {
# ?" @6 @, s( e( t; L: U$ r        {
. X# K0 _8 k- L" }                .active_low = 0,# c6 E  \5 o8 s/ M" s0 }
                .gpio = DA850_USER_LED0,$ @4 c' n6 Z! f: o+ h
                .name = "user_led0"," i  h7 H" j# z3 `( i
                .default_trigger = "default-on",( v7 i% l# R+ Q  w% d: v4 g
        },7 B8 Q" r0 q" x6 B4 E( b; R
        {- E% D- H. n/ V3 R
                .active_low = 0,
# O0 X4 X+ }6 x5 }! c( q/ k) b% x1 }                .gpio = DA850_USER_LED1,
$ w6 B3 v8 P9 u/ ]                .name = "user_led1",
6 t7 q8 e2 Q# S1 S2 N8 {                .default_trigger = "default-on",
/ W- Y$ w5 ^' P( M0 h        },
* R3 ~! L' i- g% K- A& L' U$ c& p        {2 D1 O3 b8 v1 O, a/ E3 x
                .active_low = 0,1 W0 Q4 K& P- h; G4 e
                .gpio = DA850_USER_LED2,
& e" V8 q  J' y$ E$ s2 c                .name = "user_led2",
  P' ^8 v. q/ ^8 a# l2 \                .default_trigger = "default-on",
- E" u$ r2 t  U# Y: b) r2 S        },4 i# O" |# k3 ~0 M3 D
        {& E4 S* E1 |, c; b2 a
                .active_low = 0,+ R5 u4 D1 K% X- Q8 j6 g; t
                .gpio = DA850_USER_LED3,
+ H% c. ~: n$ F& l                .name = "user_led3",0 z7 R5 @5 I# |8 f
                .default_trigger = "default-on"," L$ V* [0 n% ]& z( {& s9 ~
        },& ^4 G$ a# v5 f& d
};
0 s2 Z) G) {6 H& l3 K8 u6 c( P4 f; y$ F4 g% u4 J
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 E6 ]# A+ F9 {$ w& A
        .leds = da850_evm_tl_leds,
* B+ N0 B; Y3 E4 X, H( S        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," n2 h# ^* C4 y$ Y" p
};2 c7 I* S% _* T0 u; d& |
) }( c  ?) G0 |; Y4 e
static void led_dev_release(struct device *dev)+ W7 O, a7 T- t* ~
{
- Z0 v: |* f4 a) m};
+ w+ f0 G, ~0 ~, g* u- u
) G% D: Y2 k- |6 c; N! Ostatic struct platform_device da850_evm_tl_leds_device = {
$ K& Q+ A5 Y: h- a: \% X5 Y. [; F( B        .name                = "leds-gpio",4 A$ {# U- t! K3 W
        .id                = 1,# {1 Q+ t  ^' E5 D* h5 F# y) q
        .dev = {
+ t8 C6 H* a' w1 T9 W3 Y5 d4 k! C                .platform_data = &da850_evm_tl_leds_pdata,
! I% X1 A0 W, j+ h2 W0 ~( ^                .release = led_dev_release,
2 k& f' L3 T: k. x+ T- R        }
0 d) o1 d" F# H/ V+ G5 g- z};+ A. @, H' i& M
' I5 j2 m2 ?0 f( N% W0 U
static int __init led_platform_init(void)5 B& d4 i2 @. v. Q, P
{$ n0 o0 l: c7 B7 z! l
        int ret;
" Y! D' \5 q4 Q6 d/ R#if 08 e3 _. G  j6 H4 X' r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; C  s0 [% }* }4 T( z% b. d        if (ret)
) ?, r6 r7 W) \% [- `) A9 T4 m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- d4 J. ~0 m. s2 u                                "%d\n", ret);
# O$ z  P) a3 G, E7 u8 c. E9 K#endif
' [# ?& l7 d: o# a        ret = platform_device_register(&da850_evm_tl_leds_device);
( D& {9 X7 U0 z+ p        if (ret)
% [# ~* B* s2 ~8 [) \: P                pr_warning("Could not register som GPIO expander LEDS");" q& _- ~8 L' w
        else% j" `) e$ g: R3 W
                printk(KERN_INFO "LED register sucessful!\n");1 W1 m) l2 [: Z' Q" }8 H

6 m, i0 S% O% o" t. E( z        return ret;1 E' {+ U% l; I$ X
}( n- G. K9 J, g' g0 W
/ }1 E0 F$ m0 p1 _
static void __exit led_platform_exit(void); N' W- w9 F1 y: }& r" `
{
' x  c/ T9 @& T5 k  p7 X        platform_device_unregister(&da850_evm_tl_leds_device);% m5 C' R- T  b4 @& A; s
1 l1 \# i2 S3 X- E4 M/ i! T) r
        printk(KERN_INFO "LED unregister!\n");
) S# X0 m: |' G4 Y0 a. O6 G0 {}9 j, @& u- `6 L4 o

# d+ }6 T+ F' v: l7 \4 Wmodule_init(led_platform_init);* }/ P3 _4 {9 @# v  Q" e( u
module_exit(led_platform_exit);# X3 |( q# d+ P! d% ^0 Q1 x
5 \# {; f' c  g9 r6 h# D! o
MODULE_DESCRIPTION("Led platform driver");! {, U# ]4 l: ]
MODULE_AUTHOR("Tronlong");
/ n) \- F% B- TMODULE_LICENSE("GPL");7 R/ l& i; b  `, g: \! K
7 z2 k# u/ u- ^, y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-12 07:36 , Processed in 0.040081 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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